@jxsuite/starters 0.34.0 → 0.35.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 (245) hide show
  1. package/package.json +5 -2
  2. package/registry.json +19 -19
  3. package/sites/blog/components/bl-author-bio.json +19 -15
  4. package/sites/blog/components/bl-cta.json +20 -14
  5. package/sites/blog/components/bl-footer.json +67 -90
  6. package/sites/blog/components/bl-masthead.json +96 -90
  7. package/sites/blog/components/bl-nav.json +23 -30
  8. package/sites/blog/components/bl-newsletter-cta.json +53 -39
  9. package/sites/blog/components/bl-post-card.json +70 -52
  10. package/sites/blog/components/bl-post-list.json +2 -9
  11. package/sites/blog/components/bl-prose.json +33 -18
  12. package/sites/blog/components/bl-section-header.json +46 -29
  13. package/sites/blog/components/bl-tag-pill.json +11 -8
  14. package/sites/blog/package.json +2 -2
  15. package/sites/blog/pages/index.md +26 -24
  16. package/sites/blog/project.json +19 -16
  17. package/sites/course/components/co-application.json +158 -103
  18. package/sites/course/components/co-cohort.json +172 -0
  19. package/sites/course/components/co-cta.json +70 -18
  20. package/sites/course/components/co-curriculum-accordion.json +12 -12
  21. package/sites/course/components/co-footer.json +83 -33
  22. package/sites/course/components/co-hero.json +385 -49
  23. package/sites/course/components/co-instructor-card.json +105 -22
  24. package/sites/course/components/co-mentor.json +65 -0
  25. package/sites/course/components/co-module-card.json +98 -53
  26. package/sites/course/components/co-nav.json +194 -69
  27. package/sites/course/components/co-outcome-card.json +41 -15
  28. package/sites/course/components/co-outcomes.json +248 -0
  29. package/sites/course/components/co-pricing.json +70 -25
  30. package/sites/course/components/co-section-header.json +36 -15
  31. package/sites/course/components/co-testimonial-card.json +70 -15
  32. package/sites/course/pages/about.md +10 -11
  33. package/sites/course/pages/curriculum.md +8 -4
  34. package/sites/course/pages/enroll.md +6 -7
  35. package/sites/course/pages/index.md +41 -29
  36. package/sites/course/project.json +64 -23
  37. package/sites/event/components/ev-agenda-tabs.json +526 -240
  38. package/sites/event/components/ev-cta.json +56 -27
  39. package/sites/event/components/ev-feature.json +14 -10
  40. package/sites/event/components/ev-footer.json +82 -30
  41. package/sites/event/components/ev-hero.json +307 -72
  42. package/sites/event/components/ev-nav.json +97 -34
  43. package/sites/event/components/ev-reason.json +64 -0
  44. package/sites/event/components/ev-savedate.json +160 -73
  45. package/sites/event/components/ev-section-header.json +30 -13
  46. package/sites/event/components/ev-session-row.json +96 -36
  47. package/sites/event/components/ev-speaker-card.json +63 -17
  48. package/sites/event/components/ev-sponsors.json +131 -0
  49. package/sites/event/components/ev-stat.json +17 -12
  50. package/sites/event/components/ev-ticket-card.json +58 -40
  51. package/sites/event/components/ev-venue.json +39 -12
  52. package/sites/event/layouts/base.json +1 -1
  53. package/sites/event/pages/index.md +38 -14
  54. package/sites/event/pages/schedule.md +19 -16
  55. package/sites/event/project.json +88 -26
  56. package/sites/fitness-studio/components/fs-band.json +149 -0
  57. package/sites/fitness-studio/components/fs-booking.json +147 -0
  58. package/sites/fitness-studio/components/fs-class-card.json +62 -31
  59. package/sites/fitness-studio/components/fs-cta.json +63 -19
  60. package/sites/fitness-studio/components/fs-feature.json +20 -6
  61. package/sites/fitness-studio/components/fs-footer.json +62 -29
  62. package/sites/fitness-studio/components/fs-hero.json +296 -49
  63. package/sites/fitness-studio/components/fs-hours.json +40 -21
  64. package/sites/fitness-studio/components/fs-instructor-card.json +94 -31
  65. package/sites/fitness-studio/components/fs-intro.json +258 -23
  66. package/sites/fitness-studio/components/fs-modality.json +171 -0
  67. package/sites/fitness-studio/components/fs-nav.json +55 -24
  68. package/sites/fitness-studio/components/fs-pricing-card.json +71 -51
  69. package/sites/fitness-studio/components/fs-review.json +52 -18
  70. package/sites/fitness-studio/components/fs-schedule.json +1165 -0
  71. package/sites/fitness-studio/components/fs-section-header.json +44 -20
  72. package/sites/fitness-studio/pages/classes.md +11 -5
  73. package/sites/fitness-studio/pages/contact.md +7 -29
  74. package/sites/fitness-studio/pages/index.md +29 -52
  75. package/sites/fitness-studio/pages/pricing.md +7 -7
  76. package/sites/fitness-studio/project.json +99 -26
  77. package/sites/home-services/components/hs-callbar.json +72 -0
  78. package/sites/home-services/components/hs-cta.json +121 -60
  79. package/sites/home-services/components/hs-feature.json +42 -23
  80. package/sites/home-services/components/hs-footer.json +108 -33
  81. package/sites/home-services/components/hs-gallery.json +66 -15
  82. package/sites/home-services/components/hs-hero.json +360 -42
  83. package/sites/home-services/components/hs-intro.json +70 -7
  84. package/sites/home-services/components/hs-nav.json +233 -68
  85. package/sites/home-services/components/hs-reservation.json +125 -46
  86. package/sites/home-services/components/hs-review.json +76 -16
  87. package/sites/home-services/components/hs-section-header.json +31 -14
  88. package/sites/home-services/components/hs-service-card.json +34 -24
  89. package/sites/home-services/components/hs-stat.json +54 -0
  90. package/sites/home-services/components/hs-step.json +40 -13
  91. package/sites/home-services/components/hs-trust-bar.json +188 -40
  92. package/sites/home-services/layouts/base.json +4 -2
  93. package/sites/home-services/pages/about.md +33 -2
  94. package/sites/home-services/pages/contact.md +23 -10
  95. package/sites/home-services/pages/index.md +33 -7
  96. package/sites/home-services/pages/services.md +34 -3
  97. package/sites/home-services/project.json +82 -22
  98. package/sites/nonprofit/components/np-contact-form.json +52 -24
  99. package/sites/nonprofit/components/np-contact-info.json +27 -21
  100. package/sites/nonprofit/components/np-cta.json +152 -77
  101. package/sites/nonprofit/components/np-donate-tier.json +59 -32
  102. package/sites/nonprofit/components/np-feature.json +13 -9
  103. package/sites/nonprofit/components/np-footer.json +106 -36
  104. package/sites/nonprofit/components/np-hero.json +274 -46
  105. package/sites/nonprofit/components/np-impact-band.json +108 -0
  106. package/sites/nonprofit/components/np-intro.json +126 -19
  107. package/sites/nonprofit/components/np-nav.json +161 -82
  108. package/sites/nonprofit/components/np-program-card.json +83 -23
  109. package/sites/nonprofit/components/np-section-header.json +40 -14
  110. package/sites/nonprofit/components/np-stat.json +36 -15
  111. package/sites/nonprofit/components/np-step.json +46 -17
  112. package/sites/nonprofit/components/np-team-member.json +26 -19
  113. package/sites/nonprofit/components/np-testimonial.json +144 -29
  114. package/sites/nonprofit/pages/about.md +17 -16
  115. package/sites/nonprofit/pages/contact.md +4 -4
  116. package/sites/nonprofit/pages/get-involved.md +23 -23
  117. package/sites/nonprofit/pages/index.md +29 -44
  118. package/sites/nonprofit/pages/programs.md +12 -14
  119. package/sites/nonprofit/project.json +74 -28
  120. package/sites/portfolio/components/pv-about-split.json +21 -9
  121. package/sites/portfolio/components/pv-category-pill.json +7 -6
  122. package/sites/portfolio/components/pv-contact-form.json +34 -45
  123. package/sites/portfolio/components/pv-cta.json +35 -19
  124. package/sites/portfolio/components/pv-footer.json +97 -75
  125. package/sites/portfolio/components/pv-hero.json +77 -70
  126. package/sites/portfolio/components/pv-nav.json +32 -38
  127. package/sites/portfolio/components/pv-project-card.json +118 -61
  128. package/sites/portfolio/components/pv-project-grid.json +24 -16
  129. package/sites/portfolio/components/pv-section-header.json +74 -37
  130. package/sites/portfolio/layouts/base.json +1 -1
  131. package/sites/portfolio/package.json +2 -2
  132. package/sites/portfolio/pages/[slug].json +1 -1
  133. package/sites/portfolio/pages/about.md +4 -3
  134. package/sites/portfolio/pages/contact.md +1 -1
  135. package/sites/portfolio/pages/index.md +18 -13
  136. package/sites/portfolio/pages/work.md +7 -7
  137. package/sites/portfolio/project.json +20 -16
  138. package/sites/professional-firm/components/pf-article-header.json +34 -20
  139. package/sites/professional-firm/components/pf-contact-form.json +57 -49
  140. package/sites/professional-firm/components/pf-contact-info.json +147 -0
  141. package/sites/professional-firm/components/pf-cta.json +42 -18
  142. package/sites/professional-firm/components/pf-feature.json +21 -24
  143. package/sites/professional-firm/components/pf-footer.json +107 -48
  144. package/sites/professional-firm/components/pf-hero.json +135 -89
  145. package/sites/professional-firm/components/pf-insight-row.json +144 -0
  146. package/sites/professional-firm/components/pf-intro.json +44 -10
  147. package/sites/professional-firm/components/pf-logo-bar.json +35 -34
  148. package/sites/professional-firm/components/pf-nav.json +67 -42
  149. package/sites/professional-firm/components/pf-section-header.json +46 -22
  150. package/sites/professional-firm/components/pf-service-row.json +104 -0
  151. package/sites/professional-firm/components/pf-statband.json +183 -0
  152. package/sites/professional-firm/components/pf-team-member.json +34 -29
  153. package/sites/professional-firm/content/insights/cash-flow-forecasting.md +1 -0
  154. package/sites/professional-firm/content/insights/choosing-business-entity.md +1 -0
  155. package/sites/professional-firm/content/insights/r-and-d-tax-credits.md +1 -0
  156. package/sites/professional-firm/content/insights/when-to-hire-cfo.md +1 -0
  157. package/sites/professional-firm/content/insights/year-end-tax-moves.md +1 -0
  158. package/sites/professional-firm/layouts/article.json +96 -14
  159. package/sites/professional-firm/layouts/base.json +1 -1
  160. package/sites/professional-firm/pages/contact.md +5 -26
  161. package/sites/professional-firm/pages/index.md +39 -45
  162. package/sites/professional-firm/pages/insights/[slug].json +44 -33
  163. package/sites/professional-firm/pages/insights.md +7 -11
  164. package/sites/professional-firm/pages/services.md +16 -16
  165. package/sites/professional-firm/pages/team.md +10 -10
  166. package/sites/professional-firm/project.json +74 -30
  167. package/sites/real-estate/components/re-agent-band.json +240 -0
  168. package/sites/real-estate/components/re-agent-card.json +51 -24
  169. package/sites/real-estate/components/re-contact-form.json +76 -27
  170. package/sites/real-estate/components/re-cta.json +91 -26
  171. package/sites/real-estate/components/re-feature.json +10 -6
  172. package/sites/real-estate/components/re-footer.json +186 -46
  173. package/sites/real-estate/components/re-hero.json +443 -90
  174. package/sites/real-estate/components/re-intro.json +6 -5
  175. package/sites/real-estate/components/re-listing-card.json +199 -39
  176. package/sites/real-estate/components/re-listings-filter.json +309 -192
  177. package/sites/real-estate/components/re-nav.json +138 -39
  178. package/sites/real-estate/components/re-neighborhood.json +135 -0
  179. package/sites/real-estate/components/re-section-header.json +33 -17
  180. package/sites/real-estate/components/re-stat.json +10 -9
  181. package/sites/real-estate/components/re-step.json +15 -12
  182. package/sites/real-estate/components/re-testimonial.json +53 -16
  183. package/sites/real-estate/content/listings.csv +7 -7
  184. package/sites/real-estate/pages/[slug].json +430 -128
  185. package/sites/real-estate/pages/about.md +18 -6
  186. package/sites/real-estate/pages/contact.md +14 -2
  187. package/sites/real-estate/pages/index.md +43 -26
  188. package/sites/real-estate/pages/listings.md +15 -3
  189. package/sites/real-estate/project.json +88 -30
  190. package/sites/real-estate/public/favicon.svg +7 -1
  191. package/sites/restaurant/components/bit-cta.json +92 -14
  192. package/sites/restaurant/components/bit-feature.json +36 -17
  193. package/sites/restaurant/components/bit-footer.json +80 -34
  194. package/sites/restaurant/components/bit-gallery.json +20 -11
  195. package/sites/restaurant/components/bit-hero.json +179 -54
  196. package/sites/restaurant/components/bit-hours.json +117 -24
  197. package/sites/restaurant/components/bit-intro.json +47 -10
  198. package/sites/restaurant/components/bit-menu-group.json +55 -10
  199. package/sites/restaurant/components/bit-menu-item.json +27 -12
  200. package/sites/restaurant/components/bit-nav.json +170 -53
  201. package/sites/restaurant/components/bit-reservation.json +63 -42
  202. package/sites/restaurant/components/bit-review.json +49 -19
  203. package/sites/restaurant/components/bit-section-header.json +60 -15
  204. package/sites/restaurant/layouts/base.json +1 -1
  205. package/sites/restaurant/pages/about.md +10 -10
  206. package/sites/restaurant/pages/contact.md +7 -7
  207. package/sites/restaurant/pages/index.md +30 -20
  208. package/sites/restaurant/pages/menu.md +8 -8
  209. package/sites/restaurant/project.json +71 -28
  210. package/sites/saas/components/sa-feature-card.json +26 -16
  211. package/sites/saas/components/sa-hero.json +156 -39
  212. package/sites/saas/components/sa-nav.json +34 -26
  213. package/sites/saas/components/sa-pricing.json +11 -10
  214. package/sites/saas/components/sa-stat.json +8 -4
  215. package/sites/saas/package.json +2 -2
  216. package/sites/saas/pages/index.md +8 -8
  217. package/sites/saas/project.json +24 -16
  218. package/sites/shop/components/shp-category-tile.json +104 -0
  219. package/sites/shop/components/shp-cta.json +101 -43
  220. package/sites/shop/components/shp-feature.json +12 -7
  221. package/sites/shop/components/shp-footer.json +312 -46
  222. package/sites/shop/components/shp-hero.json +313 -46
  223. package/sites/shop/components/shp-nav.json +303 -49
  224. package/sites/shop/components/shp-newsletter.json +166 -0
  225. package/sites/shop/components/shp-product-card.json +141 -34
  226. package/sites/shop/components/shp-product-filter.json +336 -154
  227. package/sites/shop/components/shp-section-header.json +42 -20
  228. package/sites/shop/components/shp-stat.json +6 -6
  229. package/sites/shop/components/shp-trust.json +58 -0
  230. package/sites/shop/content/product/aero-road-helmet.md +2 -0
  231. package/sites/shop/content/product/apex-carbon-road.md +1 -0
  232. package/sites/shop/content/product/backroad-gravel-adv.md +1 -0
  233. package/sites/shop/content/product/boulder-enduro.md +1 -0
  234. package/sites/shop/content/product/rambler-kids-20.md +1 -0
  235. package/sites/shop/content/product/summit-trail-29er.md +1 -0
  236. package/sites/shop/content/product/trailhead-pannier-set.md +1 -0
  237. package/sites/shop/content/product/velocity-alloy-road.md +2 -0
  238. package/sites/shop/pages/index.md +38 -26
  239. package/sites/shop/pages/products/[sku].json +362 -71
  240. package/sites/shop/pages/products.md +30 -8
  241. package/sites/shop/project.json +82 -28
  242. package/sites/course/components/co-stat.json +0 -36
  243. package/sites/professional-firm/components/pf-insight-card.json +0 -99
  244. package/sites/professional-firm/components/pf-service-card.json +0 -77
  245. package/sites/professional-firm/components/pf-stat.json +0 -37
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Meridian Advisory — Accounting & advisory for growing companies"
2
+ title: "Meridian Advisory — Tax, assurance & CFO counsel for growing companies"
3
3
  state:
4
4
  latest:
5
5
  $prototype: ContentCollection
@@ -11,71 +11,65 @@ state:
11
11
  limit: 3
12
12
  ---
13
13
 
14
- ::pf-hero{props.eyebrow="Accounting · Tax · Advisory" props.heading="Numbers that move the business forward." props.subheading="Meridian Advisory is a boutique CPA and advisory firm for founders and growing companies — clear books, lower taxes, and a partner in every big decision." props.cta="Book a Consultation" props.ctaHref="/contact/" props.cta2="Explore Services" props.cta2Href="/services/" props.bg="/images/hero.jpg"}
14
+ ::pf-hero{props.eyebrow="Tax · Assurance · Advisory" props.marker="Est. 2007 · Harborview" props.heading="Financial clarity for companies built to last." props.lede="Meridian Advisory is a boutique CPA and advisory firm for founders and growing companies — disciplined books, a lower tax bill, and a partner in every consequential decision." props.aside="We read the whole picture — margins, runway, and the decision in front of you — before the deadline, not after." props.cta="Book a consultation" props.ctaHref="/contact/" props.cta2="Read the Quarterly" props.cta2Href="/insights/"}
15
15
 
16
- ::pf-logo-bar{props.label="Trusted by founders, operators, and boards across the region"}
16
+ ::pf-statband{props.n1="18" props.l1="Years advising founders" props.n2="240+" props.l2="Companies served" props.n3="$40M" props.l3="Tax saved for clients" props.n4="96%" props.l4="Client retention"}
17
17
 
18
- :::pf-intro{props.image="/images/about.jpg" props.imageAlt="The Meridian Advisory team reviewing financials together"}
18
+ ::pf-logo-bar{props.label="Trusted by founders, operators & boards"}
19
19
 
20
- ### A firm that reads the whole picture
20
+ :::::section{style.padding="clamp(4rem, 8vw, 6rem) 1.5rem"}
21
+ ::pf-section-header{props.eyebrow="Practice" props.index="Four disciplines" props.heading="Advisory across the full financial stack" props.subheading="Engage us for a single service or a fully outsourced finance function. Compliance handled, strategy included."}
21
22
 
22
- We are not a once-a-year tax shop. Meridian pairs disciplined accounting with genuine advisory — the kind of partner who knows your margins, your runway, and your goals, and who picks up the phone before the deadline.
23
+ ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.borderBottom="1px solid var(--color-hairline)"}
24
+ ::pf-service-row{props.number="01" props.tag="Tax" props.title="Tax planning & preparation" props.text="Year-round strategy and clean filings for the business and its owners — federal, state, and multi-entity, handled proactively." props.href="/services/"}
23
25
 
24
- The result is fewer surprises, a lower tax bill, and decisions made with real numbers instead of guesses.
25
- :::
26
-
27
- :::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
28
- ::pf-section-header{props.eyebrow="What we do" props.heading="Advisory across the full financial stack"}
29
-
30
- ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(4, 1fr)" style.gap="1.25rem" style.--lg.gridTemplateColumns="repeat(2, 1fr)" style.--sm.gridTemplateColumns="1fr"}
31
- ::pf-service-card{props.icon="📊" props.title="Tax planning & prep" props.text="Proactive strategy and clean filings for businesses and their owners — federal, state, and multi-entity." props.link="Learn more" props.linkHref="/services/"}
32
-
33
- ::pf-service-card{props.icon="📒" props.title="Bookkeeping & close" props.text="Accurate monthly books and a fast close, so your numbers are ready when the decisions are." props.link="Learn more" props.linkHref="/services/"}
34
-
35
- ::pf-service-card{props.icon="🧭" props.title="Fractional CFO" props.text="Forecasting, fundraising support, and board-ready reporting — senior finance judgment, part-time." props.link="Learn more" props.linkHref="/services/"}
36
-
37
- ::pf-service-card{props.icon="🔍" props.title="Audit & assurance" props.text="Reviews, compilations, and audit readiness that stand up to lenders, investors, and regulators." props.link="Learn more" props.linkHref="/services/"}
38
- ::::
39
- :::::
40
-
41
- :::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
42
- ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(4, 1fr)" style.gap="1.5rem" style.--md.gridTemplateColumns="repeat(2, 1fr)"}
43
- ::pf-stat{props.number="18 yrs" props.label="Advising founders"}
26
+ ::pf-service-row{props.number="02" props.tag="Assurance" props.title="Audit & assurance" props.text="Reviews, compilations, and audit-readiness that satisfy lenders, investors, and regulators without the disruption." props.href="/services/"}
44
27
 
45
- ::pf-stat{props.number="240+" props.label="Companies served"}
28
+ ::pf-service-row{props.number="03" props.tag="Finance" props.title="Fractional CFO" props.text="Forecasting, cash management, and board-ready reporting — senior finance judgment, applied a few days a month." props.href="/services/"}
46
29
 
47
- ::pf-stat{props.number="$40M" props.label="Tax saved for clients"}
48
-
49
- ::pf-stat{props.number="4.9★" props.label="Average client rating"}
30
+ ::pf-service-row{props.number="04" props.tag="Books" props.title="Bookkeeping & monthly close" props.text="Accurate, reconciled books and a five-day close, so your numbers are ready the moment a decision is." props.href="/services/"}
50
31
  ::::
51
32
  :::::
52
33
 
53
- :::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
54
- ::pf-section-header{props.eyebrow="How we work" props.heading="A partnership, not a portal"}
34
+ ::::section{style.backgroundColor="var(--color-bg-cream)" style.borderTop="1px solid var(--color-rule)" style.borderBottom="1px solid var(--color-rule)"}
35
+ :::pf-intro{props.image="/images/about.jpg" props.imageAlt="The Meridian Advisory team reviewing financials together" props.kicker="The practice"}
55
36
 
56
- ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
57
- ::pf-feature{props.step="1" props.title="Understand" props.text="We start by learning your business — the model, the margins, and the milestones that matter to you."}
37
+ ### We are not a once-a-year tax shop.
58
38
 
59
- ::pf-feature{props.step="2" props.title="Advise" props.text="You get a named advisor and a plan, reviewed quarterly, that ties every recommendation to your goals."}
39
+ Meridian pairs disciplined accounting with genuine advisory — the kind of partner who knows your margins, your runway, and your goals, and who picks up the phone before the deadline.
60
40
 
61
- ::pf-feature{props.step="3" props.title="Execute" props.text="We handle the filings, the close, and the deadlines, and flag the decisions worth a conversation."}
41
+ The result is fewer surprises, a lower tax bill, and decisions made with real numbers instead of guesses.
42
+ :::
62
43
  ::::
63
- :::::
64
44
 
65
- :::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
66
- ::pf-section-header{props.eyebrow="Insights" props.heading="Guidance from our desk"}
45
+ :::::section{style.padding="clamp(4rem, 8vw, 6rem) 1.5rem"}
46
+ ::pf-section-header{props.eyebrow="The Quarterly" props.index="Selected notes" props.heading="Guidance from our desk"}
67
47
 
68
- ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.5rem" style.--md.gridTemplateColumns="1fr"}
48
+ ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.borderBottom="1px solid var(--color-hairline)"}
69
49
  :::Array{items.ref="#/state/latest"}
70
- ::pf-insight-card{props.title="${item.data.title}" props.excerpt="${item.data.excerpt}" props.date="${item.data.date}" props.author="${item.data.author}" props.href="/insights/${item.id}/"}
50
+ ::pf-insight-row{props.number="0${item.data.order}" props.title="${item.data.title}" props.excerpt="${item.data.excerpt}" props.date="${item.data.date}" props.category="${item.data.category}" props.readingTime="${item.\_meta.readingTime}" props.href="/insights/${item.id}/"}
71
51
  :::
72
52
  ::::
73
53
 
74
- ::::div{style.textAlign="center" style.marginTop="2.5rem"}
75
- :::a{href="/insights/" style.display="inline-block" style.color="var(--color-primary)" style.fontWeight="600" style.textDecoration="none" style.fontSize="1.05rem"}
76
- Read all insights →
54
+ ::::div{style.maxWidth="var(--max-width)" style.margin="2.25rem auto 0" style.textAlign="right"}
55
+ :::a{href="/insights/" style.fontFamily="var(--font-sans)" style.fontSize="0.75rem" style.fontWeight="600" style.textTransform="uppercase" style.letterSpacing="0.14em" style.color="var(--color-ink)" style.textDecoration="none" style.borderBottom="1px solid var(--color-accent)" style.paddingBottom="0.2rem"}
56
+ Read the full Quarterly →
77
57
  :::
78
58
  ::::
79
59
  :::::
80
60
 
81
- ::pf-cta{props.heading="Let's talk about your numbers" props.text="Book a free 30-minute consultation. We'll review where you are and where a sharper financial partner could take you." props.cta="Book a Consultation" props.ctaHref="/contact/"}
61
+ ::::::section{style.padding="clamp(4rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)" style.borderTop="1px solid var(--color-rule)"}
62
+ ::pf-section-header{props.eyebrow="People" props.index="The partners" props.heading="Senior advisors, not a rotating cast"}
63
+
64
+ :::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(4, 1fr)" style.gap="clamp(1.5rem, 3vw, 2.5rem)" style.--lg.gridTemplateColumns="repeat(2, 1fr)" style.--sm.gridTemplateColumns="1fr"}
65
+ ::pf-team-member{props.photo="/images/team-1.jpg" props.name="Dana Whitfield" props.role="Managing Partner, CPA" props.bio="Founded Meridian in 2007 after a decade in public accounting. Leads CFO engagements and complex tax strategy."}
66
+
67
+ ::pf-team-member{props.photo="/images/team-2.jpg" props.name="Priya Nair" props.role="Partner, Tax" props.bio="Advises founders on entity structure, credits, and multi-state tax. Believes the best planning happens in November."}
68
+
69
+ ::pf-team-member{props.photo="/images/team-3.jpg" props.name="Marcus Bell" props.role="Director, Advisory" props.bio="Runs forecasting and fundraising support for growth-stage clients. A former operator who has sat on your side of the table."}
70
+
71
+ ::pf-team-member{props.photo="/images/team-4.jpg" props.name="Elena Sorokin" props.role="Manager, Assurance" props.bio="Leads reviews and audit-readiness work. Makes diligence painless for teams raising their next round."}
72
+ :::::
73
+ ::::::
74
+
75
+ ::pf-cta{props.eyebrow="Consultation" props.heading="Let's talk about your numbers" props.text="Book a free 30-minute consultation. We'll review where you are and where a sharper financial partner could take you." props.cta="Book a consultation" props.ctaHref="/contact/"}
@@ -18,7 +18,7 @@
18
18
  {
19
19
  "tagName": "pf-article-header",
20
20
  "$props": {
21
- "eyebrow": "Insight",
21
+ "eyebrow": "${state.entry.data.category}",
22
22
  "title": "${state.entry.data.title}",
23
23
  "date": "${state.entry.data.date}",
24
24
  "author": "${state.entry.data.author}",
@@ -28,9 +28,19 @@
28
28
  {
29
29
  "tagName": "div",
30
30
  "style": {
31
- "fontSize": "1.15rem",
32
- "lineHeight": "1.85",
33
- "color": "var(--color-text-primary)"
31
+ "fontFamily": "var(--font-serif)",
32
+ "fontSize": "1.2rem",
33
+ "lineHeight": "1.8",
34
+ "color": "var(--color-ink)",
35
+ "& p:first-of-type::first-letter": {
36
+ "float": "left",
37
+ "fontFamily": "var(--font-serif)",
38
+ "fontSize": "3.6em",
39
+ "lineHeight": "0.82",
40
+ "fontWeight": "600",
41
+ "padding": "0.02em 0.14em 0 0",
42
+ "color": "var(--color-accent)"
43
+ }
34
44
  },
35
45
  "children": {
36
46
  "$prototype": "Array",
@@ -43,34 +53,32 @@
43
53
  }
44
54
  },
45
55
  {
46
- "tagName": "hr",
47
- "style": {
48
- "border": "none",
49
- "borderTop": "1px solid var(--color-border)",
50
- "margin": "2.5rem 0 2rem"
51
- }
52
- },
53
- {
54
- "tagName": "p",
56
+ "tagName": "div",
55
57
  "style": {
56
- "fontSize": "0.95rem",
57
- "color": "var(--color-text-muted)",
58
- "margin": "0 0 2rem"
58
+ "marginTop": "2.5rem",
59
+ "paddingTop": "1.5rem",
60
+ "borderTop": "1px solid var(--color-hairline)",
61
+ "fontFamily": "var(--font-sans)",
62
+ "fontSize": "0.78rem",
63
+ "textTransform": "uppercase",
64
+ "letterSpacing": "0.12em",
65
+ "color": "var(--color-muted)"
59
66
  },
60
67
  "textContent": "Written by ${state.entry.data.author} · Meridian Advisory"
61
68
  },
62
69
  {
63
70
  "tagName": "div",
64
71
  "style": {
65
- "backgroundColor": "var(--color-bg-cream)",
66
- "border": "1px solid var(--color-border)",
67
- "borderRadius": "var(--radius)",
68
- "padding": "1.75rem 2rem",
72
+ "marginTop": "2.5rem",
73
+ "backgroundColor": "var(--color-ink-deep)",
74
+ "color": "var(--color-text-white)",
75
+ "borderTop": "3px solid var(--color-accent)",
76
+ "padding": "2rem",
69
77
  "display": "flex",
70
78
  "flexWrap": "wrap",
71
79
  "alignItems": "center",
72
80
  "justifyContent": "space-between",
73
- "gap": "1rem"
81
+ "gap": "1.25rem"
74
82
  },
75
83
  "children": [
76
84
  {
@@ -79,16 +87,16 @@
79
87
  {
80
88
  "tagName": "div",
81
89
  "style": {
82
- "fontFamily": "var(--font-heading)",
83
- "fontSize": "1.2rem",
84
- "fontWeight": "600",
85
- "marginBottom": "0.25rem"
90
+ "fontFamily": "var(--font-serif)",
91
+ "fontSize": "1.35rem",
92
+ "fontWeight": "500",
93
+ "marginBottom": "0.3rem"
86
94
  },
87
95
  "textContent": "Have a question this raised?"
88
96
  },
89
97
  {
90
98
  "tagName": "div",
91
- "style": { "color": "var(--color-text-muted)", "fontSize": "0.95rem" },
99
+ "style": { "color": "rgba(244,241,233,0.75)", "fontSize": "0.95rem" },
92
100
  "textContent": "Book a free consultation with a Meridian advisor."
93
101
  }
94
102
  ]
@@ -98,17 +106,20 @@
98
106
  "attributes": { "href": "/contact/" },
99
107
  "style": {
100
108
  "display": "inline-block",
101
- "backgroundColor": "var(--color-primary)",
102
- "color": "var(--color-text-white)",
103
- "padding": "0.8rem 1.75rem",
104
- "borderRadius": "var(--radius)",
109
+ "backgroundColor": "var(--color-accent)",
110
+ "color": "var(--color-ink-deep)",
111
+ "padding": "0.85rem 1.75rem",
112
+ "fontFamily": "var(--font-sans)",
113
+ "fontSize": "0.76rem",
105
114
  "fontWeight": "600",
106
- "fontSize": "0.98rem",
115
+ "textTransform": "uppercase",
116
+ "letterSpacing": "0.14em",
107
117
  "textDecoration": "none",
108
118
  "whiteSpace": "nowrap",
109
- ":hover": { "backgroundColor": "var(--color-primary-hover)" }
119
+ "transition": "background-color 0.15s",
120
+ ":hover": { "backgroundColor": "#b0904c" }
110
121
  },
111
- "textContent": "Book a Consultation"
122
+ "textContent": "Book a consultation"
112
123
  }
113
124
  ]
114
125
  }
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Insights — Meridian Advisory"
2
+ title: "The Quarterly — Meridian Advisory"
3
3
  state:
4
4
  articles:
5
5
  $prototype: ContentCollection
@@ -10,20 +10,16 @@ state:
10
10
  order: asc
11
11
  ---
12
12
 
13
- :::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
14
- ::pf-section-header{props.eyebrow="Insights" props.heading="Practical guidance for owners and operators" props.subheading="Short, useful notes on tax, cash flow, and the financial decisions that shape a growing company."}
13
+ :::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)" style.borderBottom="1px solid var(--color-rule)"}
14
+ ::pf-section-header{props.eyebrow="The Quarterly" props.index="Vol. XVIII · Winter 2025" props.heading="Practical guidance for owners and operators" props.subheading="Short, useful notes on tax, cash flow, and the financial decisions that shape a growing company — a running index, newest at the top."}
15
15
  :::::
16
16
 
17
- :::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.padding="0 1.5rem" style.marginTop="clamp(2rem, 5vw, 3.5rem)"}
18
- ::img{src="/images/insight-cover.jpg" alt="Financial charts and reports on a desk" loading="lazy" style.width="100%" style.height="clamp(220px, 32vw, 380px)" style.objectFit="cover" style.borderRadius="var(--radius)" style.display="block"}
19
- :::
20
-
21
- :::::section{style.maxWidth="var(--max-width)" style.margin="0 auto" style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
22
- ::::div{style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.5rem" style.--md.gridTemplateColumns="1fr"}
17
+ :::::section{style.padding="clamp(3.5rem, 7vw, 5.5rem) 1.5rem"}
18
+ ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.borderBottom="1px solid var(--color-hairline)"}
23
19
  :::Array{items.ref="#/state/articles"}
24
- ::pf-insight-card{props.title="${item.data.title}" props.excerpt="${item.data.excerpt}" props.date="${item.data.date}" props.author="${item.data.author}" props.href="/insights/${item.id}/"}
20
+ ::pf-insight-row{props.number="0${item.data.order}" props.title="${item.data.title}" props.excerpt="${item.data.excerpt}" props.date="${item.data.date}" props.category="${item.data.category}" props.readingTime="${item.\_meta.readingTime}" props.href="/insights/${item.id}/"}
25
21
  :::
26
22
  ::::
27
23
  :::::
28
24
 
29
- ::pf-cta{props.heading="Have a question these raised?" props.text="Every one of these notes started with a client conversation. Start yours with a free consultation." props.cta="Book a Consultation" props.ctaHref="/contact/"}
25
+ ::pf-cta{props.eyebrow="Consultation" props.heading="Have a question these raised?" props.text="Every one of these notes started with a client conversation. Start yours with a free consultation." props.cta="Book a consultation" props.ctaHref="/contact/"}
@@ -1,39 +1,39 @@
1
1
  ---
2
- title: "Services — Meridian Advisory"
2
+ title: "Practice — Meridian Advisory"
3
3
  ---
4
4
 
5
- :::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
6
- ::pf-section-header{props.eyebrow="Our services" props.heading="Everything a growing company needs from its accountants" props.subheading="Compliance handled, strategy included. Engage us for a single service or a full outsourced finance function."}
5
+ :::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)" style.borderBottom="1px solid var(--color-rule)"}
6
+ ::pf-section-header{props.eyebrow="Practice areas" props.index="Six disciplines" props.heading="Everything a growing company needs from its accountants" props.subheading="Compliance handled, strategy included. Engage us for a single service or a fully outsourced finance function."}
7
7
  :::::
8
8
 
9
- :::::section{style.maxWidth="var(--max-width)" style.margin="0 auto" style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
10
- ::::div{style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
11
- ::pf-service-card{props.icon="📊" props.title="Tax planning & preparation" props.text="Year-round strategy plus accurate returns for your business and its owners. Entity elections, multi-state filings, credits, and estimated payments — all handled proactively."}
9
+ :::::section{style.padding="clamp(4rem, 8vw, 6rem) 1.5rem"}
10
+ ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.borderBottom="1px solid var(--color-hairline)"}
11
+ ::pf-service-row{props.number="01" props.tag="Tax" props.title="Tax planning & preparation" props.text="Year-round strategy plus accurate returns for your business and its owners. Entity elections, multi-state filings, credits, and estimated payments — all handled proactively." props.href="/contact/"}
12
12
 
13
- ::pf-service-card{props.icon="📒" props.title="Bookkeeping & monthly close" props.text="Clean, reconciled books and a five-day monthly close. You get financial statements you can trust and a dashboard of the metrics that matter."}
13
+ ::pf-service-row{props.number="02" props.tag="Books" props.title="Bookkeeping & monthly close" props.text="Clean, reconciled books and a five-day monthly close. Financial statements you can trust and a dashboard of the metrics that matter." props.href="/contact/"}
14
14
 
15
- ::pf-service-card{props.icon="🧭" props.title="Fractional CFO" props.text="Forecasting, cash management, fundraising support, and board-ready reporting — the senior finance leadership you need without a full-time hire."}
15
+ ::pf-service-row{props.number="03" props.tag="Finance" props.title="Fractional CFO" props.text="Forecasting, cash management, fundraising support, and board-ready reporting — the senior finance leadership you need without a full-time hire." props.href="/contact/"}
16
16
 
17
- ::pf-service-card{props.icon="🔍" props.title="Audit & assurance" props.text="Reviews, compilations, and audit-readiness engagements that satisfy lenders, investors, and regulators without the disruption."}
17
+ ::pf-service-row{props.number="04" props.tag="Assurance" props.title="Audit & assurance" props.text="Reviews, compilations, and audit-readiness engagements that satisfy lenders, investors, and regulators without the disruption." props.href="/contact/"}
18
18
 
19
- ::pf-service-card{props.icon="🏛️" props.title="Entity & structure" props.text="Formation, S-corp elections, and restructuring guidance so your legal and tax structure fits where the business is heading."}
19
+ ::pf-service-row{props.number="05" props.tag="Structure" props.title="Entity & structure" props.text="Formation, S-corp elections, and restructuring guidance so your legal and tax structure fits where the business is heading." props.href="/contact/"}
20
20
 
21
- ::pf-service-card{props.icon="👥" props.title="Payroll & advisory" props.text="Payroll setup and oversight, owner compensation planning, and the ongoing advice that keeps you compliant as you grow."}
21
+ ::pf-service-row{props.number="06" props.tag="Payroll" props.title="Payroll & owner advisory" props.text="Payroll setup and oversight, owner compensation planning, and the ongoing advice that keeps you compliant as you grow." props.href="/contact/"}
22
22
  ::::
23
23
  :::::
24
24
 
25
- :::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
26
- ::pf-section-header{props.eyebrow="Engagement" props.heading="How an engagement works"}
25
+ :::::section{style.padding="clamp(4rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)" style.borderTop="1px solid var(--color-rule)"}
26
+ ::pf-section-header{props.eyebrow="Engagement" props.index="Four steps" props.heading="How an engagement works"}
27
27
 
28
- ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(4, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
28
+ ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(4, 1fr)" style.gap="clamp(1.5rem, 3vw, 2.5rem)" style.--md.gridTemplateColumns="1fr"}
29
29
  ::pf-feature{props.step="1" props.title="Discovery call" props.text="A free 30-minute conversation to understand your business and whether we're the right fit."}
30
30
 
31
31
  ::pf-feature{props.step="2" props.title="Scope & quote" props.text="A clear proposal with fixed monthly pricing — no surprise invoices, no hourly meter."}
32
32
 
33
33
  ::pf-feature{props.step="3" props.title="Onboarding" props.text="We migrate your books, connect your systems, and set up reporting in the first two weeks."}
34
34
 
35
- ::pf-feature{props.step="4" props.title="Ongoing partnership" props.text="Monthly close, quarterly strategy reviews, and a named advisor a message away."}
35
+ ::pf-feature{props.step="4" props.title="Partnership" props.text="Monthly close, quarterly strategy reviews, and a named advisor a message away."}
36
36
  ::::
37
37
  :::::
38
38
 
39
- ::pf-cta{props.heading="Not sure which service you need?" props.text="Tell us where you are and we'll point you to the right starting place — even if that's not with us." props.cta="Book a Consultation" props.ctaHref="/contact/"}
39
+ ::pf-cta{props.eyebrow="Consultation" props.heading="Not sure which service you need?" props.text="Tell us where you are and we'll point you to the right starting place — even if that's not with us." props.cta="Book a consultation" props.ctaHref="/contact/"}
@@ -1,27 +1,27 @@
1
1
  ---
2
- title: "Team — Meridian Advisory"
2
+ title: "People — Meridian Advisory"
3
3
  ---
4
4
 
5
- :::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
6
- ::pf-section-header{props.eyebrow="Our people" props.heading="Senior advisors, not a rotating cast" props.subheading="You work directly with the partners and managers who know your business — the same faces year after year."}
5
+ :::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)" style.borderBottom="1px solid var(--color-rule)"}
6
+ ::pf-section-header{props.eyebrow="Our people" props.index="The partners" props.heading="Senior advisors, not a rotating cast" props.subheading="You work directly with the partners and managers who know your business — the same faces, year after year."}
7
7
  :::::
8
8
 
9
- :::::section{style.maxWidth="var(--max-width)" style.margin="0 auto" style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
10
- ::::div{style.display="grid" style.gridTemplateColumns="repeat(4, 1fr)" style.gap="1.5rem" style.--lg.gridTemplateColumns="repeat(2, 1fr)" style.--sm.gridTemplateColumns="1fr"}
9
+ :::::section{style.padding="clamp(4rem, 8vw, 6rem) 1.5rem"}
10
+ ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(4, 1fr)" style.gap="clamp(1.5rem, 3vw, 2.5rem)" style.--lg.gridTemplateColumns="repeat(2, 1fr)" style.--sm.gridTemplateColumns="1fr"}
11
11
  ::pf-team-member{props.photo="/images/team-1.jpg" props.name="Dana Whitfield" props.role="Managing Partner, CPA" props.bio="Founded Meridian in 2007 after a decade in public accounting. Leads CFO engagements and complex tax strategy."}
12
12
 
13
13
  ::pf-team-member{props.photo="/images/team-2.jpg" props.name="Priya Nair" props.role="Partner, Tax" props.bio="Advises founders on entity structure, credits, and multi-state tax. Believes the best planning happens in November."}
14
14
 
15
- ::pf-team-member{props.photo="/images/team-3.jpg" props.name="Marcus Bell" props.role="Director, Advisory" props.bio="Runs forecasting and fundraising support for growth-stage clients. Former operator who has sat on your side of the table."}
15
+ ::pf-team-member{props.photo="/images/team-3.jpg" props.name="Marcus Bell" props.role="Director, Advisory" props.bio="Runs forecasting and fundraising support for growth-stage clients. A former operator who has sat on your side of the table."}
16
16
 
17
17
  ::pf-team-member{props.photo="/images/team-4.jpg" props.name="Elena Sorokin" props.role="Manager, Assurance" props.bio="Leads reviews and audit-readiness work. Makes diligence painless for teams raising their next round."}
18
18
  ::::
19
19
  :::::
20
20
 
21
- :::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
22
- ::pf-section-header{props.eyebrow="What we value" props.heading="The principles behind the practice"}
21
+ :::::section{style.padding="clamp(4rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)" style.borderTop="1px solid var(--color-rule)"}
22
+ ::pf-section-header{props.eyebrow="What we value" props.index="Three principles" props.heading="The principles behind the practice"}
23
23
 
24
- ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
24
+ ::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="clamp(1.5rem, 3vw, 2.5rem)" style.--md.gridTemplateColumns="1fr"}
25
25
  ::pf-feature{props.title="Plain language" props.text="No jargon, no lectures. We explain the trade-offs so you can make the call with confidence."}
26
26
 
27
27
  ::pf-feature{props.title="Proactive, not reactive" props.text="We flag the opportunity or the risk before the deadline, not after the return is filed."}
@@ -30,4 +30,4 @@ title: "Team — Meridian Advisory"
30
30
  ::::
31
31
  :::::
32
32
 
33
- ::pf-cta{props.heading="Meet the team that will know your numbers" props.text="Book a consultation and you'll speak with a partner — not a call center — from the very first conversation." props.cta="Book a Consultation" props.ctaHref="/contact/"}
33
+ ::pf-cta{props.eyebrow="Consultation" props.heading="Meet the team that will know your numbers" props.text="Book a consultation and you'll speak with a partner — not a call center — from the very first conversation." props.cta="Book a consultation" props.ctaHref="/contact/"}
@@ -8,32 +8,45 @@
8
8
  "$head": [
9
9
  {
10
10
  "tagName": "meta",
11
- "attributes": { "name": "viewport", "content": "width=device-width, initial-scale=1" }
11
+ "attributes": {
12
+ "name": "viewport",
13
+ "content": "width=device-width, initial-scale=1"
14
+ }
12
15
  },
13
16
  {
14
17
  "tagName": "meta",
15
18
  "attributes": {
16
19
  "name": "description",
17
- "content": "Meridian Advisory is an accounting and advisory firm helping founders and growing companies with tax, audit, CFO services, and long-term financial strategy."
20
+ "content": "Meridian Advisory is a boutique CPA and advisory firm for founders and growing companies — tax, assurance, and fractional CFO counsel, published as a quarterly of practical financial thinking."
18
21
  }
19
22
  },
20
23
  {
21
24
  "tagName": "link",
22
- "attributes": { "rel": "icon", "href": "/favicon.svg" }
25
+ "attributes": {
26
+ "rel": "icon",
27
+ "href": "/favicon.svg"
28
+ }
23
29
  },
24
30
  {
25
31
  "tagName": "link",
26
- "attributes": { "rel": "preconnect", "href": "https://fonts.googleapis.com" }
32
+ "attributes": {
33
+ "rel": "preconnect",
34
+ "href": "https://fonts.googleapis.com"
35
+ }
27
36
  },
28
37
  {
29
38
  "tagName": "link",
30
- "attributes": { "rel": "preconnect", "href": "https://fonts.gstatic.com", "crossorigin": "" }
39
+ "attributes": {
40
+ "rel": "preconnect",
41
+ "href": "https://fonts.gstatic.com",
42
+ "crossorigin": ""
43
+ }
31
44
  },
32
45
  {
33
46
  "tagName": "link",
34
47
  "attributes": {
35
48
  "rel": "stylesheet",
36
- "href": "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&display=swap"
49
+ "href": "https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,500&family=Archivo:wght@400;500;600;700&display=swap"
37
50
  }
38
51
  }
39
52
  ],
@@ -44,27 +57,40 @@
44
57
  "--sm": "(max-width: 640px)"
45
58
  },
46
59
  "style": {
47
- "--color-primary": "#1e3a8a",
48
- "--color-primary-hover": "#172554",
49
- "--color-ink": "#0f172a",
50
- "--color-bg-dark": "#0f172a",
51
- "--color-bg-cream": "#f7f9fc",
52
- "--color-bg-white": "#ffffff",
53
- "--color-text-primary": "#0f172a",
54
- "--color-text-white": "#ffffff",
55
- "--color-text-muted": "#64748b",
56
- "--color-border": "#e2e8f0",
57
- "--color-accent": "#0f766e",
58
- "--font-heading": "'Fraunces', Georgia, 'Times New Roman', serif",
59
- "--max-width": "1200px",
60
- "--max-width-narrow": "820px",
61
- "--radius": "0.5rem",
60
+ "--color-ink": "#161a2c",
61
+ "--color-ink-deep": "#0d101d",
62
+ "--color-navy": "#1d2748",
63
+ "--color-paper": "#f4f1e9",
64
+ "--color-paper-2": "#ece7da",
65
+ "--color-surface": "#fbf9f3",
66
+ "--color-accent": "#9a7b3c",
67
+ "--color-accent-deep": "#7c6230",
68
+ "--color-muted": "#605e55",
69
+ "--color-rule": "#161a2c",
70
+ "--color-hairline": "#d5cdba",
71
+ "--color-primary": "#161a2c",
72
+ "--color-primary-hover": "#242c4a",
73
+ "--color-bg-dark": "#0d101d",
74
+ "--color-bg-cream": "#ece7da",
75
+ "--color-bg-white": "#fbf9f3",
76
+ "--color-text-primary": "#161a2c",
77
+ "--color-text-white": "#f4f1e9",
78
+ "--color-text-muted": "#605e55",
79
+ "--color-border": "#d5cdba",
80
+ "--font-serif": "'Spectral', Georgia, 'Times New Roman', serif",
81
+ "--font-sans": "'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
82
+ "--font-heading": "'Spectral', Georgia, 'Times New Roman', serif",
83
+ "--max-width": "1180px",
84
+ "--max-width-narrow": "720px",
85
+ "--measure": "660px",
86
+ "--radius": "0",
62
87
  "margin": "0",
63
88
  "padding": "0",
64
- "fontFamily": "system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
89
+ "fontFamily": "var(--font-sans)",
90
+ "fontSize": "17px",
65
91
  "lineHeight": "1.6",
66
- "color": "var(--color-text-primary)",
67
- "backgroundColor": "var(--color-bg-white)"
92
+ "color": "var(--color-ink)",
93
+ "backgroundColor": "var(--color-paper)"
68
94
  },
69
95
  "imports": {
70
96
  "Markdown": "@jxsuite/parser/Markdown.class.json",
@@ -75,7 +101,12 @@
75
101
  "optimize": true,
76
102
  "widths": [320, 640, 960, 1280, 1920],
77
103
  "formats": ["webp", "avif"],
78
- "quality": { "webp": 80, "avif": 65, "jpeg": 80, "png": 80 },
104
+ "quality": {
105
+ "webp": 80,
106
+ "avif": 65,
107
+ "jpeg": 80,
108
+ "png": 80
109
+ },
79
110
  "sizes": "(max-width: 768px) 100vw, 50vw",
80
111
  "lazyLoad": true
81
112
  },
@@ -86,11 +117,24 @@
86
117
  "schema": {
87
118
  "type": "object",
88
119
  "properties": {
89
- "title": { "type": "string" },
90
- "excerpt": { "type": "string" },
91
- "date": { "type": "string" },
92
- "author": { "type": "string" },
93
- "order": { "type": "number" }
120
+ "title": {
121
+ "type": "string"
122
+ },
123
+ "excerpt": {
124
+ "type": "string"
125
+ },
126
+ "date": {
127
+ "type": "string"
128
+ },
129
+ "author": {
130
+ "type": "string"
131
+ },
132
+ "category": {
133
+ "type": "string"
134
+ },
135
+ "order": {
136
+ "type": "number"
137
+ }
94
138
  },
95
139
  "required": ["title", "excerpt", "date"]
96
140
  }