# Sections & Page Overrides

## Sections & Page Overrides

**Files:** `src/content/sections/english/` (and `french/`), page content files · **Skill level:** Beginner to edit, light code to add or move

A **section** is one full-width block of a page: a banner, a services list, an FAQ. Consultiz has three kinds:

| Kind              | Where its content lives                                              | Example                                         |
| ----------------- | -------------------------------------------------------------------- | ----------------------------------------------- |
| **Reusable**      | A default file in `src/content/sections/<language>/`, overridable per page | `FaqCentered` reads `faq-centered.md`     |
| **Page-specific** | The page's own content file                                          | The tax and accounting sections in `homepage/english/tax-accounting.md` |
| **Detail-only**   | The entry being shown (a solution, a person, a case study)           | `CaseStudyDetailsSection`                       |

`docs/section-ownership.md` in the theme lists every section component, its kind, its content file, and the pages that use it. [How Consultiz Works](/consultiz/getting-started/how-consultiz-works/) explains the idea in full; this page is the practical reference.

### Change A Section Everywhere
Edit its file in `src/content/sections/english/` (and `french/`). Some files have comments that list their options. Change values, keep the keys and indentation.

### Hide A Section
- **Everywhere:** set `enable: false` at the top of its section file.
- **On one page:** add its block to that page's content file with `enable: false`:

  ```yaml
  newsletterSection:
    enable: false
  ```

- **On one page, for good:** delete its line in the page's route file in `src/pages/[...lang]/`.

Don't delete a section's content file while a route still uses the section.

### Change A Section On One Page
Add a **named block** to the page's content file, with only the keys you want to change. Objects merge key by key, lists replace the whole list, `""` clears a value, and `[]` clears a list.

```yaml
# src/content/contact/english/-index.md
customersSection:
  title: "Our partners"

newsletterSection:
  title: "Tax deadlines and updates, once a month"
  submitLabel: "Sign up"
```

Copy the block name exactly. A misnamed block is ignored without an error. Values inside a correctly named block are checked by `npm run astro-check` and the build.

### Page Blocks By Page
Each page reads a fixed set of blocks. A block only works on a page that renders that section.

| Page and content file                                        | Blocks it reads                                                                                         |
| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
| Main homepage, `homepage/<lang>/-index.md`                   | `corporateBanner`, `corporateAbout`, `customersSection`, `corporateServices`, `corporateIndustries`, `corporateGrowthBanner`, `corporateWhyChoose`, `corporateCompanyGrowth`, `corporateTestimonial`, `corporateBlog`, `corporateContact`, `corporateFaq`, `footerAwardSection` |
| Corporate consulting, `homepage/<lang>/corporate-consulting.md` | `bannerSection`, `businessChallengesSection`, `customersSection`, `growthBannerSection`, `growthChallengeSection`, `businessValueSection`, `industriesCoverSection`, `feedbackSection`, `estimateTaxSection`, `latestArticlesSection`, `newsletterSection`, `footerAwardSection` |
| Tax and accounting, `homepage/<lang>/tax-accounting.md`              | The `service…` blocks ([Homepages](/consultiz/customization/homepages/)) and `footerAwardSection`      |
| About, `about/<lang>/-index.md`                              | `videoSection`, `aboutImageStatsSection`, `servicesSection`, `aboutProcessSection`, `teamSection`, `testimonialSection`, `customersSection`, `ctaSection`, `awardSection` |
| About style 2 (`/about/style-02/`), `faq/<lang>/-index.md`   | `faqSection`                                                                                             |
| Awards, `awards/<lang>/-index.md`                            | `awardSection`, `ourJourneySection`                                                                      |
| Contact, `contact/<lang>/-index.md`                          | `customersSection`, `newsletterSection`, `footerAwardSection`                                            |
| Pricing, `pricing/<lang>/-index.md`                          | `pricingSection`, `customersSection`, `corporateFaq`, `newsletterSection`, `footerAwardSection`          |
| FAQ, `faq/<lang>/-index.md`                                  | `newsletterSection`, `footerAwardSection` (the questions are in `faqGroups`)                             |
| People list, `people/<lang>/-index.md`, and each profile     | `customersSection`, `newsletterSection`                                                                  |
| Careers list, `careers/<lang>/-index.md`                     | `customersSection`, `newsletterSection`, `footerAwardSection`                                            |
| Each role, blog post, and case study                         | `footerAwardSection`                                                                                     |
| Blog list pages, `blog/<lang>/-index.md`                     | `footerAwardSection` (`/blog/`, `/blog/standard/`, `/blog/style-02/`)                                    |
| Text pages, `pages/<lang>/*.md`                              | `featuresSection`, `ctaSection`; legal pages read `newsletterSection` and `footerAwardSection` instead   |
| Webinar and event, `pages/<lang>/webinar-event.md`           | `webinarOverview`, `corporateFaq`, `footerAwardSection`                                                  |
| Solution and industry layouts, `solution-*/` and `industry-*/` | Their own page-specific blocks, plus `corporateFaq`, `customersSection`, `newsletterSection`, and `footerAwardSection` where the page shows them |

<Aside type="tip">
  Most page files list the blocks they read in a comment near the end of the
  frontmatter. When in doubt, open the route file in `src/pages/[...lang]/`
  and look for `content={...}` on the section.
</Aside>

### Reusable Section Catalog
Every reusable section, its default content file in `src/content/sections/<language>/`, and the pages that show it. Variants of the same kind of section (two banners, three testimonial sliders) are separate components; see [Section Variants](/consultiz/customization/section-variants/).

#### Banners And Introductions
| Section (component)                       | Content file                | Shown on                                        |
| ----------------------------------------- | --------------------------- | ----------------------------------------------- |
| Banner slider (`banner/BannerSlider`)     | `banner-slider.md`          | Main homepage                                   |
| Tabbed banner (`banner/BannerTabbedSlider`) | `banner-tabbed-slider.md` | Corporate consulting homepage                   |
| About, centered (`about/AboutCentered`)   | `about-centered.md`         | Main homepage                                   |
| About with stats (`about/AboutImageStats`) | `about-image-stats.md`     | `/about/`                                       |
| About process (`about/AboutProcess`)      | `about-process.md`          | `/about/`                                       |
| Video (`VideoSection`)                    | `video-section.md`          | `/about/`                                       |

#### Services, Industries, And Solutions
| Section (component)                         | Content file                     | Shown on                                              |
| ------------------------------------------- | -------------------------------- | ----------------------------------------------------- |
| Services, centered (`services/ServicesCentered`) | `services-centered.md`      | Main homepage, `/solutions/style-01/`                 |
| Services, parallax (`services/ServicesParallax`) | `services-parallax.md`      | `/about/`                                             |
| Industries stepper (`industries/IndustriesStepper`) | `industries-stepper.md`  | Main homepage, `/industries/style-01/`                |
| Industries cover (`industries/IndustriesCover`) | `industries-cover.md`        | Corporate consulting homepage, `/industries/style-02/` |
| Business challenges (`BusinessChallengesSection`) | `business-challenges-section.md` | Corporate consulting homepage, industry pages, `/solutions/style-01/` |
| Business value (`BusinessValueSection`)     | `business-value.md`              | Corporate consulting homepage, `/company/`            |
| Why choose us (`WhyChooseSection`)          | `why-choose-section.md`          | Main homepage, solution pages, `/solutions/style-01/` |
| Growth banner, full width (`growth-banner/GrowthBannerFullWidth`) | `growth-banner-full-width.md` | Main homepage, `/industries/style-02/` |
| Growth banner, card (`growth-banner/GrowthBannerCard`) | `growth-banner-card.md` | Corporate consulting homepage, `/solutions/style-02/` |
| Growth challenge (`GrowthChallengeSection`) | `growth-challenge.md`            | Corporate consulting homepage, `/solutions/style-02/` |
| Growth statistics (`GrowthStatsSection`)    | `growth-stats-section.md`        | Main homepage                                         |
| Tax estimate (`EstimateTaxSection`)         | `estimate-tax.md`                | Corporate consulting homepage                         |

#### Proof And People
| Section (component)                        | Content file                       | Shown on                                     |
| ------------------------------------------ | ---------------------------------- | -------------------------------------------- |
| Client logos (`CustomersSection`)          | `partner-marquee.md` (corporate look) or `customers.md` (default look) | Most pages: homepages, about, company, contact, pricing, people, careers, industry layouts |
| Video testimonials (`testimonial/TestimonialVideoShowcase`) | `testimonial-video-showcase.md` | Main homepage                    |
| Testimonial slider (`testimonial/TestimonialSliderVertical`) | `testimonial-slider-vertical.md` | `/about/`                       |
| Client feedback (`FeedbackSection`)        | `feedback-section.md`              | Corporate consulting homepage                |
| Team (`TeamSection`)                       | `team-section.md`                  | `/about/`                                    |
| Awards (`AwardSection`)                    | `award-section.md`                 | `/about/`, `/awards/`                        |
| Our journey (`OurJourneySection`)          | `our-journey-section.md`           | `/awards/`                                   |
| Awards strip (`FooterAwardSection`)        | `footer-awards.md`                 | Pages that opt in (see [Footer](/consultiz/customization/footer/)) |

The testimonial sliders read their quotes from `src/content/testimonial/english/-index.md` (the `home` and `home2` lists).

Some sections have no page in the demo (for example the services slider, the process steps slider, and the video testimonial slider). They are listed in [Section Variants](/consultiz/customization/section-variants/#sections-not-placed-on-any-page).

### Client Logos And Rating Badges
The demo client logos are invented wordmarks, and the rating badges ("4.9, based on 12,456 reviews") use a neutral icon, `/images/icons/rating-badge.svg`. Both are samples to replace or remove:

- **Logos:** the `list` in `src/content/sections/english/partner-marquee.md` (`src`, `alt`, and an optional `href`), and the `servicePartners` list in `src/content/homepage/english/tax-accounting.md`. Only show clients who agreed to it.
- **Ratings:** `googleReview` in `partner-marquee.md` and in the `servicePartners` block, `rating` in `about-centered.md`, the rating in `feedback-section.md` and `testimonial-video-showcase.md`, the `icon` of each quote in `src/content/testimonial/english/-index.md`, the ratings in `solutions/english/-index.md` (`detailDefaults`), and `intro` in `careers/english/-index.md` (`rating`, `reviewText`, `ratingUrl`, `ratingLogo`).

Show a rating only if your firm really has it on a review platform. Then use that platform's own logo as the icon (`icon`, `iconAlt`, or `ratingLogo`), your real score and review count, and a link to your profile there (`url` or `ratingUrl`, which also accept a page path on your site). Otherwise set `enable: false` (for example `googleReview: { enable: false }`) or remove the block.

#### Articles, FAQ, Contact, And Calls To Action
| Section (component)                        | Content file                 | Shown on                                                     |
| ------------------------------------------ | ---------------------------- | ------------------------------------------------------------ |
| Latest articles (`blog/BlogGridCentered`, `blog/BlogTwoColumn`) | `blog-grid-centered.md` | Corporate consulting homepage (slider); main homepage and `/industries/` (two-column) |
| FAQ, centered (`faq/FaqCentered`)          | `faq-centered.md`            | Main homepage, pricing, company, FAQ, webinar, solution and industry layouts |
| FAQ with image and categories (`faq/FaqImageSplit`) | `faq-image-split.md` | `/about/style-02/`                                           |
| Contact form with image (`contact/ContactImageForm`) | `contact-image-form.md` | Main homepage, `/solutions/`                            |
| Call to action banner (`cta/CtaImageBanner`) | `cta-image-banner.md`      | `/about/`, text pages                                        |
| Features (`FeaturesSection`)               | `features-section.md`        | Text pages (`pages/`)                                        |
| Newsletter (`NewsletterSection`)           | `newsletter.md`              | Corporate consulting homepage, contact, pricing, FAQ, people, careers, legal pages, solution and industry layouts |
| Pricing (`PricingSection`)                 | `pricing-section.md`         | `/pricing/`                                                  |
| Search (`SearchSection`)                   | `search-section.md`          | `/search/`                                                   |

Site-wide files in the same folder: `home-header.md` ([Header](/consultiz/customization/header/)), `footer-newsletter-grid.md` ([Footer](/consultiz/customization/footer/)), `cookie-consent.md` ([Cookies & Analytics](/consultiz/customization/cookies-analytics/)), and `company-page.md`, which holds the content of the `/company/` page.

### Preview Sections In Lists
Sections that preview a collection (solutions, articles, portfolio, industries, team) take `options.limit`:

| Value     | Result                          |
| --------- | ------------------------------- |
| A number  | Shows up to that many items     |
| `false`   | Shows every item                |
| `0`       | Hides the section               |

This is separate from the page size of the collection's own list page.

### Add A Section To A Page
This is a small code edit in the page's route file:

1. Import the component at the top, between the `---` lines:

   ```astro
   import FaqCentered from "@/components/sections/faq/FaqCentered.astro";
   ```

2. Place it where you want it, inside `<Base>`:

   ```astro
   <FaqCentered />
   ```

3. To give it page-specific content, pass a block from the page file. Use a block name the page's schema already knows (see `sectionsSchema` in `src/sections.schema.ts`):

   ```astro
   <FaqCentered content={entry?.data?.corporateFaq} />
   ```

Building a brand-new section is a developer task: follow section 5 of `NEXTJS-TO-ASTRO-GUIDE.md` in the theme (component, Markdown defaults, schema, route).