- consolidate the shared eyebrow label styling into the global typography layer
- replace the old script-label usage in page hero, home hero, FAQ, and team shells
- keep the next heading flush under the label across all affected page types
Additional info:
- move page-specific shells into src/components/pages/
- keep reusable building blocks and home sections in their existing component folders
- update PageLayout and the home route imports to the new page-shell paths
- preserve current page behavior while making the component tree easier to navigate
Changes the base link rule from a plain blue primary colour to the
site's accent orange (--color-accent-strong) with no underline, matching
the live site's link treatment. Adds a :hover/:active state that shifts
to the lighter accent, and carves out a.button so CTA buttons keep their
primary-colour label text.
PageLayout now imports FaqPage and routes the faqs slug through it,
passing the page content as a slot (accordion and search are handled by
the component). Also passes subtitle="FAQs" to PageHero for the split
title/subtitle hero treatment.
faqs.mdx is cleaned up to match what FaqPage.astro expects as input:
- removes the old Button import and the duplicate h2 headings that are
now rendered by the component itself
- reformats all answers from loose markdown text to explicit HTML
elements (p, ul, ol, h4, h5) so the accordion parser receives
well-formed nodes rather than flat text runs
Extends PageHero with a subtitle?: string prop rendered as an h2 beneath
the h1. On image-backed heroes the heading group gets a semi-transparent
white backdrop (display: inline-block; background: #fffb) so the text
stays readable against busy photography at mobile widths. Subtitle h2
inherits the page-hero heading font at a slightly smaller fluid size.
The live site applies border-color #ffbd59 (--color-accent) to the
search input on focus with no additional outline. Adds:
.hs-search-field__input:focus { border-color: var(--color-accent); outline: none; }
Also applies button-center to the secondary CTA button and removes the
now-redundant text-align/max-width rules from .faq-cta-secondary
(centering is handled by the button-center utility).
The original search field used a decorative <div> with an outline SVG
icon floating outside the <form> — a HubSpot pattern that made the icon
non-interactive and the label invisible only by luck.
Replaces it with the structure the live site actually uses:
- hs-search-field__bar--button-inline with a real <button type="button">
containing the filled FA-style magnifying-glass SVG from the live page
- Flexbox form so the input and button are proper flex siblings rather
than one element positioned over another
- Rectangular 4px-radius border matching the live widget (was pill 999px)
- Defines .sr-only locally so the label is correctly hidden
- Changes name from "term" to "q" and placeholder to "Search" to match
Introduces FaqPage.astro, a client-side component that:
- Parses MDX-sourced h3/answer pairs into animated <details> accordions
(single-open, smooth height transitions)
- Provides a live text filter that hides non-matching questions as the
user types
- Includes a pill-shaped HubSpot-style search field with decorative icon
- Closes with two CTA bands (primary blue and secondary white)
- move --color-tint background from Employment Opportunities to ABA Clinic Management
- restructure group template so section (not inner container) carries background, allowing it to span full width
- add live site italic tagline "Applied Behavior Analysis '(ABA) at your service'" from source markup
Remove the bordered, aspect-ratio-constrained card style and replace
with a plain flex-wrap grid of 227px cards using the live site's
4px-radius, borderless image treatment and smaller body-font labels.
Wrap each image in a .team-thumb overflow container and add a
scale(1.1)→scale(1.05) zoom-out transition on hover, matching the
Growmeda plugin behavior on the live page.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The live site's second paragraph ends with a contact sentence that was
missing from the Astro component.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- add the two live intro paragraphs between the hero and article grid
- keep the library listing cards in the live two-column layout
- restore the 4:3 cropped article thumbnails and card spacing via library-scoped selectors
- avoid leaking the card-grid overrides into unrelated pages
- add likes/views from api to library article cards
- keep homepage section data driven from structured frontmatter
- render typed section components inside the template map instead of frontmatter helper code
- resolve the Astro parse error in HomePage.astro
- preserve the existing homepage section order and component split
- relocate header, footer, nav, hero, and page-hero styles into their owning components
- move blog index, blog post, team, video, insurance, CTA, and home-section styles out of the global sheet
- keep focused on shared primitives such as buttons, cards, links, and list styling
- preserve existing layout and responsive behavior while reducing global CSS scope
- replace the flat homepage sections array with a named home: block
- validate homepage sections with typed Zod schemas
- make HomePage.astro render the structured content file data
- keep English and Spanish homepage copy easier to scan and edit
- replace bespoke page and library banners with PageHero.astro
- add ServicesPage.astro for the live-style English services landing page
- restyle shared hero/container measurements for the new layout shell
- add self-hosted services card images
- deferred height-equalization script in `HomeProcess.astro` to `document.fonts.ready`
- card heights now measured with correct web fonts in all environments, not just Vite dev server
- break the /about page out of the generic prose layout into a dedicated AboutPage.astro component
- three separate <section> elements matching the live site's alternating white/cream backgrounds
— Our Story (white), Our Mission (var(--color-tint)), Our Commitment (white)
— format the commitment list with bolded value names and accent left-border styling
- replace plain contact text with icon-backed contact rows
- swap social glyphs for SVG social icons with external links
- tighten footer spacing and hover states to match the live design
Rewrites LanguageSwitcher to match the live site: a trigger showing the
active language code and a Bootstrap Icons globe SVG reveals a hover/
focus-within dropdown with full language names (English, Español, عربي).
Fixes hover gap by moving visual spacing into menu padding-top so the
hover zone is continuous from trigger to menu items.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Relocates HomeHero, HomeServicesIntro, HomeBenefits, HomeSkills,
HomeInsurance, HomeEsa, and HomeDirector styles from the global
components.css into each component's own <style> block. Removes the
now-empty 480px media query and trims the 760px media query to only
global rules. Build verified at 97 pages.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Installs swiper, rewrites HomeTestimonials with loop, 6400ms autoplay,
clickable pagination bullets, and prev/next navigation. Extracts all 11
testimonials from the live site into both EN and ES content files. Styles
bullets and arrows with accent colour tokens to match the live site.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Narrows the photo column to match the live site's ~1:3.6 split,
stacks photo above name as an h3, italicises the quote, and styles
the name line with body font at caption scale.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Equalizes all six process cards to the tallest card's height via a
resize-aware script. Adds scale(1.05) hover transition matching the
live site. Adjusts card padding and icon sizing; shortens two step
labels for better card balance.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces static video link with a self-contained VideoCard component
that opens a native <dialog> lightbox with autoplay on open and
iframe src teardown on close. Includes pulsing ring animation on the
play button and a rounded-triangle SVG icon.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Changes skills grid from 6 columns to 3 (desktop), 2 (≤760px), and 1
(≤480px). Scales skill icons with vw units so they fill each column
proportionally across breakpoints. Adjusts logo-row spacing to match
live site.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All visible text, lists, image refs, and CTAs for the home page now live
in en/index.md and es/index.md as a typed `sections:` frontmatter array.
HomePage.astro is reduced to a thin router; each section type is rendered
by a dedicated component in src/components/home/. Adds .no-balance utility
class to suppress text-wrap: balance on the commitments heading.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- synchronize bold and italic formatting across multilingual blog articles
- restore emphasized headings, list labels, links, quotes, and table content
- fix malformed nested emphasis around Markdown links
- match rendered emphasis counts across all 63 indexed live articles
- add reusable live-site-faithful blog footer component
- extract previous, next, and related post data from article content
- remove duplicated footer fragments from multilingual articles
- document the repeatable footer extraction workflow
- add reusable Link and Button MDX components
- convert source-verified page CTAs to explicit buttons
- match live-site prose link styling and CTA destinations
- document link, button, and extraction authoring rules
- restore semantic table markup across English, Spanish, and Arabic posts
- match live-site table styling and caption formatting
- preserve tables and normalize contained links and assets during extraction
- restores the migrated blog blockquotes to the live site’s visual treatment
- adds the self-hosted quote-mark SVG and matches its live positioning
- updates the extractor, audit scripts, and migration reports to reflect the blockquote work
- add Astro MDX support and convert FAQ-bearing posts to MDX
- centralize FAQ markup, scoped styling, behavior, and JSON-LD
- preserve FAQ content and links across English and Spanish posts
- extend blog audits and document the MDX editing workflow
- remove obsolete global FAQ styles
- ignore Front Matter CMS generated state