backend:
  name: github
  repo: or-laserservice/or-laser-test
  branch: main
  base_url: https://or-laserservice.com
  auth_endpoint: api/admin/auth

publish_mode: simple
media_folder: public/images/cms
public_folder: /images/cms

collections:
  - name: machines
    label: Machines
    folder: src/content/machines
    extension: md
    format: frontmatter
    create: true
    slug: '{{slug}}'
    identifier_field: name
    fields:
      - { name: name, label: Name, widget: string, hint: 'Display name e.g. "HTS-F" or "Laser CAB XL".' }
      - name: family
        label: Family
        widget: relation
        collection: globals
        file: machines-hub
        search_fields: ['families.*.key']
        value_field: 'families.*.key'
        display_fields: ['families.*.key']
        default: HTS
        hint: 'Which family group this machine appears under on the Machines hub page. The list is populated from Site globals → Machines hub → Family groups — add a new family group there first to make it selectable here.'
      - { name: series, label: Series code, widget: string, hint: '"HTS", "LRS", "CAB", etc.' }
      - { name: seriesNumber, label: Series number, widget: string, hint: 'e.g. "01", "02".' }
      - { name: tagline, label: Tagline (EN), widget: text }
      - { name: taglineDe, label: Tagline (DE), widget: text, required: false }
      - name: status
        label: Status
        widget: select
        options: ['live', 'draft']
        default: draft

      # Hub card
      - { name: cardSku, label: Card SKU, widget: string, required: false, hint: 'Short identifier shown above the title on the hub card, e.g. "HTS-F · 2026".' }
      - { name: cardPhotoLabel, label: Card photo label, widget: string, required: false, hint: 'Fallback label shown when no hero image is uploaded.' }
      - { name: cardPhotoCaption, label: Card photo caption, widget: string, required: false }
      - name: cardTagline
        label: Card tagline (overrides Tagline on the hub card)
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: text, required: false }
          - { name: de, label: DE, widget: text, required: false }
      - name: cardSpecs
        label: Card specs (4 items shown on hub card)
        widget: list
        required: false
        fields:
          - { name: k, label: Key, widget: string }
          - { name: v, label: Value, widget: string }
          - { name: accent, label: Highlight (orange)?, widget: boolean, default: false, required: false }

      # Imagery
      - { name: heroPhoto, label: Hero photo, widget: image, required: false }
      - name: heroPhotoDisplay
        label: Hero photo — fit & ratio
        widget: object
        collapsed: true
        required: false
        hint: 'Leave blank to use the page default. Override only when an image needs different framing.'
        fields: &image_display_fields
          - { name: fit, label: Fit, widget: select, required: false, default: '',
              options: ['', 'cover', 'contain', 'fill', 'scale-down', 'none'],
              hint: 'cover crops to fill · contain letterboxes · fill stretches.' }
          - { name: position, label: Focal point, widget: select, required: false, default: '',
              options: ['', 'center', 'center top', 'center bottom', 'left center', 'right center', 'left top', 'right top', 'left bottom', 'right bottom'],
              hint: 'Used when fit = cover. Anchors the crop.' }
          - { name: aspectRatio, label: Aspect ratio, widget: select, required: false, default: '',
              options: ['', '16/9', '4/3', '3/2', '1/1', '3/4', '4/5', '9/16', 'auto'],
              hint: 'Override the frame shape. Leave blank to keep the page default.' }
          - { name: bg, label: Background, widget: select, required: false, default: '',
              options: ['', 'warm', 'bg', 'dark', 'accent', 'white', 'transparent'],
              hint: 'Background showing through when fit = contain.' }
      - name: heroAlt
        label: Hero photo alt text
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: string, required: false }
          - { name: de, label: DE, widget: string, required: false }
      - name: gallery
        label: Gallery (additional photos)
        widget: list
        required: false
        fields:
          - { name: image, label: Image, widget: image }
          - name: display
            label: Image fit & ratio
            widget: object
            collapsed: true
            required: false
            fields: *image_display_fields
          - name: caption
            label: Caption
            widget: object
            required: false
            fields:
              - { name: en, label: EN, widget: string, required: false }
              - { name: de, label: DE, widget: string, required: false }
      - name: exploded
        label: Disassemble / exploded view layers
        widget: list
        required: false
        hint: 'Ordered images stacked into a layered view.'
        fields:
          - { name: image, label: Image, widget: image }
          - name: display
            label: Image fit & ratio
            widget: object
            collapsed: true
            required: false
            fields: *image_display_fields
          - name: label
            label: Layer label
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - { name: order, label: Order, widget: number, default: 0, value_type: int }
      - name: applications
        label: Application photos
        widget: list
        required: false
        fields:
          - { name: image, label: Image, widget: image, required: false }
          - name: display
            label: Image fit & ratio
            widget: object
            collapsed: true
            required: false
            fields: *image_display_fields
          - name: application
            label: Application name
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: note
            label: Note
            widget: object
            required: false
            fields:
              - { name: en, label: EN, widget: string, required: false }
              - { name: de, label: DE, widget: string, required: false }

      # Detail page
      - name: overview
        label: Overview (long copy on detail page)
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: text, required: false }
          - { name: de, label: DE, widget: text, required: false }
      - name: specs
        label: Specifications (full list shown on detail page)
        widget: list
        required: false
        fields:
          - { name: k, label: Key, widget: string }
          - { name: v, label: Value, widget: string }

      - name: documents
        label: Downloads (PDFs shown after Specifications)
        widget: list
        required: false
        label_singular: Document
        summary: '{{fields.title.en}}'
        fields:
          - name: title
            label: Title
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: type
            label: Type tag (e.g. Datasheet, Manual, CE)
            widget: object
            required: false
            fields:
              - { name: en, label: EN, widget: string, required: false }
              - { name: de, label: DE, widget: string, required: false }
          - name: file
            label: PDF (English / default)
            widget: file
            media_folder: /public/pdfs
            public_folder: /pdfs
          - name: fileDe
            label: PDF (German — optional, falls back to English)
            widget: file
            required: false
            media_folder: /public/pdfs
            public_folder: /pdfs

      # Compare table
      - { name: inCompareTable, label: 'Show in compare table?', widget: boolean, default: true, required: false }
      - name: compareRow
        label: Compare table row
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: laserType, label: Laser type, widget: string, required: false }
          - { name: laserTypeAccent, label: 'Highlight laser type (orange)?', widget: boolean, default: false, required: false }
          - { name: meanPower, label: Max mean power, widget: string, required: false }
          - { name: meanPowerAccent, label: 'Highlight max mean power (orange)?', widget: boolean, default: false, required: false }
          - { name: lineVoltage, label: Line voltage (V/Ph/Hz), widget: string, required: false }
          - { name: pulseFreq, label: Pulse frequency, widget: string, required: false }
          - { name: pulsePeak, label: Pulse peak power, widget: string, required: false }
          - { name: pulseDuration, label: Pulse duration, widget: string, required: false }
          - { name: dimensions, label: Dimensions, widget: string, required: false }
          - { name: focusDiameter, label: Focus diameter, widget: string, required: false }
          - { name: weight, label: Weight, widget: string, required: false }

      - { name: body, label: 'Long-form body (markdown, appears after all sections)', widget: markdown, required: false }

  - name: services
    label: Services
    folder: src/content/services
    extension: md
    format: frontmatter
    create: true
    slug: '{{slug}}'
    identifier_field: name
    fields:
      - { name: name, label: Name (EN), widget: string }
      - { name: nameDe, label: Name (DE), widget: string, required: false }
      - { name: breadcrumb, label: Breadcrumb (EN), widget: string }
      - { name: breadcrumbDe, label: Breadcrumb (DE), widget: string, required: false }
      - { name: tagline, label: Tagline (EN), widget: text }
      - { name: taglineDe, label: Tagline (DE), widget: text, required: false }
      - name: status
        label: Status
        widget: select
        options: ['live', 'draft']
        default: draft
      - { name: idx, label: 'Display order (e.g. "01")', widget: string, required: false }

      # Hub card
      - name: cardTitle
        label: Hub card title
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: string, required: false }
          - { name: de, label: DE, widget: string, required: false }
      - name: cardSubtitle
        label: Hub card subtitle
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: string, required: false }
          - { name: de, label: DE, widget: string, required: false }
      - name: cardDescription
        label: Hub card description
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: text, required: false }
          - { name: de, label: DE, widget: text, required: false }
      - name: cardBullets
        label: Hub card bullets
        widget: list
        required: false
        fields:
          - { name: en, label: EN, widget: string }
          - { name: de, label: DE, widget: string }
      - name: cardCtaLabel
        label: Hub card CTA label (overrides default)
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: string, required: false }
          - { name: de, label: DE, widget: string, required: false }
      - { name: cardHref, label: Hub card link (overrides /services/<slug>), widget: string, required: false }
      - { name: cardPhoto, label: Hub card photo, widget: image, required: false }
      - name: cardPhotoDisplay
        label: Card photo — fit & ratio
        widget: object
        collapsed: true
        required: false
        fields: *image_display_fields
      - { name: cardPhotoLabel, label: Card photo label (fallback when no photo), widget: string, required: false }
      - { name: cardPhotoCaption, label: Card photo caption, widget: string, required: false }

      # Detail page
      - { name: heroPhoto, label: Detail hero photo, widget: image, required: false }
      - name: heroPhotoDisplay
        label: Detail hero photo — fit & ratio
        widget: object
        collapsed: true
        required: false
        fields: *image_display_fields
      - name: heroAlt
        label: Hero photo alt text
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: string, required: false }
          - { name: de, label: DE, widget: string, required: false }
      - name: heroHeadline
        label: Detail hero headline (overrides Tagline)
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: string, required: false }
          - { name: de, label: DE, widget: string, required: false }
      - name: overview
        label: Overview paragraph
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: text, required: false }
          - { name: de, label: DE, widget: text, required: false }
      - name: processSteps
        label: Process steps
        widget: list
        required: false
        fields:
          - name: title
            label: Step title
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: body
            label: Step body
            widget: object
            required: false
            fields:
              - { name: en, label: EN, widget: text, required: false }
              - { name: de, label: DE, widget: text, required: false }
      - name: faq
        label: FAQ
        widget: list
        required: false
        fields:
          - name: q
            label: Question
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: a
            label: Answer
            widget: object
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
      - name: ctaLabel
        label: CTA button label
        widget: object
        required: false
        collapsed: true
        fields:
          - { name: en, label: EN, widget: string, required: false }
          - { name: de, label: DE, widget: string, required: false }
      - { name: ctaHref, label: CTA button URL, widget: string, required: false }

      - { name: body, label: 'Long-form body (markdown, appears after all sections)', widget: markdown, required: false }

  - name: news
    label: Guides & News
    folder: src/content/news
    extension: md
    format: frontmatter
    create: true
    slug: '{{locale}}/{{slug}}'
    path: '{{locale}}/{{slug}}'
    identifier_field: title
    fields:
      - { name: title, label: Title, widget: string }
      - { name: description, label: Description, widget: text }
      - { name: date, label: Date, widget: datetime }
      - { name: image, label: Image, widget: image, required: false }
      - name: imageDisplay
        label: Image fit & ratio
        widget: object
        collapsed: true
        required: false
        fields: *image_display_fields
      - { name: tags, label: Tags, widget: list, required: false }
      - name: locale
        label: Locale
        widget: select
        options: ['en', 'de']
      - { name: altSlug, label: Alt slug (translation), widget: string, required: false }
      - { name: relatedService, label: Related service, widget: string, required: false }
      - { name: body, label: Body, widget: markdown }

  - name: legal
    label: Legal pages
    folder: src/content/legal
    extension: md
    format: frontmatter
    create: false
    slug: '{{slug}}'
    identifier_field: title
    fields:
      - { name: title, label: Title (EN), widget: string }
      - { name: titleDe, label: Title (DE), widget: string }
      - { name: updated, label: Last updated, widget: string }
      - { name: eyebrow, label: Eyebrow (EN), widget: string, required: false }
      - { name: eyebrowDe, label: Eyebrow (DE), widget: string, required: false }
      - { name: description, label: Meta description (EN), widget: text, required: false }
      - { name: descriptionDe, label: Meta description (DE), widget: text, required: false }
      - { name: altSlugEn, label: EN URL, widget: string }
      - { name: altSlugDe, label: DE URL, widget: string }
      - name: body
        label: Body (HTML with data-en/data-de for bilingual swap)
        widget: markdown
        hint: 'Wrap bilingual text in <p data-en="…" data-de="…">…</p>. Both languages live in one file.'

  - name: globals
    label: Site globals
    files:
      - name: site
        label: Site-wide copy
        file: src/content/globals/site.md
        fields:
          - name: nap
            label: Contact (name · address · phone)
            widget: object
            hint: 'Single source for company name, address, email and phone — used in the header utility bar, mobile menu, and footer.'
            fields:
              - { name: companyName, label: Company name, widget: string }
              - { name: street, label: Street, widget: string }
              - { name: postalCode, label: Postal code, widget: string }
              - { name: city, label: City, widget: string }
              - name: country
                label: Country
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - { name: email, label: Email, widget: string }
              - { name: phoneDisplay, label: Phone (display), widget: string }
              - { name: phoneTel, label: 'Phone (tel: digits)', widget: string, hint: 'Digits only with country code, e.g. +4960718202427' }
      - name: nav
        label: Navigation
        file: src/content/globals/nav.md
        fields:
          - name: items
            label: Top-level nav items (in display order)
            widget: list
            fields:
              - { name: id, label: ID, widget: string, hint: 'Stable identifier, e.g. "machines".' }
              - { name: href, label: Link URL, widget: string }
              - name: label
                label: Label
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: mega
                label: Mega menu (optional)
                widget: object
                required: false
                collapsed: true
                fields:
                  - name: heading
                    label: Mega menu heading
                    widget: object
                    required: false
                    fields:
                      - { name: en, label: EN, widget: string, required: false }
                      - { name: de, label: DE, widget: string, required: false }
                  - name: links
                    label: Sub-links
                    widget: list
                    required: false
                    fields:
                      - { name: href, label: Link URL, widget: string }
                      - name: label
                        label: Sub-link label
                        widget: object
                        fields:
                          - { name: en, label: EN, widget: string }
                          - { name: de, label: DE, widget: string }
                      - name: preview
                        label: Hover preview panel
                        widget: object
                        collapsed: true
                        fields:
                          - name: tag
                            label: Tag
                            widget: object
                            fields:
                              - { name: en, label: EN, widget: string }
                              - { name: de, label: DE, widget: string }
                          - name: title
                            label: Title
                            widget: object
                            fields:
                              - { name: en, label: EN, widget: string }
                              - { name: de, label: DE, widget: string }
                          - name: body
                            label: Body
                            widget: object
                            fields:
                              - { name: en, label: EN, widget: text }
                              - { name: de, label: DE, widget: text }
                          - { name: image, label: Preview image, widget: image, required: false, hint: 'Shown in the mega-menu preview pane on hover. Leave empty for the placeholder.' }
                          - name: imageDisplay
                            label: Preview image — fit & ratio
                            widget: object
                            collapsed: true
                            required: false
                            fields: *image_display_fields
                          - name: machines
                            label: Sub-machines shown in this preview
                            widget: list
                            required: false
                            hint: 'Only used for "family" rows under Machines. Each item links to a specific machine detail page in the hover preview.'
                            fields:
                              - { name: href, label: URL, widget: string }
                              - name: label
                                label: Label
                                widget: object
                                fields:
                                  - { name: en, label: EN, widget: string }
                                  - { name: de, label: DE, widget: string }
      - name: services-hub
        label: Services hub page copy
        file: src/content/globals/services-hub.md
        fields:
          - name: servicesEyebrow
            label: Eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: servicesHeadline
            label: Hero headline
            widget: object
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - name: servicesLead
            label: Hero lead paragraph
            widget: object
            fields:
              - { name: en, label: EN, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
              - { name: de, label: DE, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
          - name: servicesReadDetailLabel
            label: 'Default "Read service detail" CTA label'
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: slaHeading
            label: SLA section heading
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: slaTiers
            label: SLA tiers
            widget: list
            fields:
              - { name: idx, label: Tier ID, widget: string }
              - name: title
                label: Title
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - { name: response, label: Response time, widget: string }
              - { name: responseNote, label: Response note (small text), widget: string }
              - name: body
                label: Body
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
          - name: mapEyebrow
            label: Map section eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: mapHeading
            label: Map section heading
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: mapBody
            label: Map section body
            widget: object
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - { name: mapLegend, label: Map legend (HTML allowed), widget: string, required: false }
      - name: homepage
        label: Homepage copy
        file: src/content/globals/homepage.md
        fields:
          - name: homeHero
            label: Hero
            widget: object
            collapsed: true
            fields:
              - name: eyebrow
                label: Eyebrow
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: line1
                label: Headline line 1
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - name: line2
                label: Headline line 2
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - name: strike
                label: Struck-through word
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: lead
                label: Lead paragraph
                widget: object
                fields:
                  - { name: en, label: EN, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
                  - { name: de, label: DE, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
              - name: primaryCtaLabel
                label: Primary CTA label
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - { name: primaryCtaHref, label: Primary CTA URL, widget: string }
              - name: secondaryCtaLabel
                label: Secondary CTA label
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - { name: secondaryCtaHref, label: Secondary CTA URL, widget: string }
              - name: meta
                label: Meta row (under hero)
                widget: list
                fields:
                  - { name: k, label: Label, widget: string }
                  - { name: v, label: Value, widget: string }
              - { name: stampLine, label: Stamp line 1, widget: string, required: false }
              - { name: stampStrong, label: Stamp line 2 (bold), widget: string, required: false }
              - { name: photo, label: Hero photo, widget: image, required: false }
              - name: photoDisplay
                label: Hero photo — fit & ratio
                widget: object
                collapsed: true
                required: false
                fields: *image_display_fields
              - { name: photoLabel, label: Photo placeholder label, widget: string, required: false }
              - { name: photoCaption, label: Photo placeholder caption, widget: string, required: false }
              - name: specRail
                label: Spec rail (under photo)
                widget: list
                fields:
                  - { name: k, label: Label, widget: string }
                  - { name: v, label: Value, widget: string }
          - name: homeMarquee
            label: Marquee lines (HTML allowed for <em> emphasis)
            widget: list
            field: { name: line, widget: string }
          - name: homePillarsSection
            label: Pillars section header
            widget: object
            collapsed: true
            fields:
              - name: eyebrow
                label: Eyebrow
                widget: object
                required: false
                fields:
                  - { name: en, label: EN, widget: string, required: false }
                  - { name: de, label: DE, widget: string, required: false }
              - name: heading
                label: Heading
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: body
                label: Body
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - name: ctaLabel
                label: CTA label
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - { name: ctaHref, label: CTA URL, widget: string }
          - name: homePillars
            label: Pillar tiles
            widget: list
            fields:
              - { name: href, label: Link URL, widget: string }
              - { name: label, label: Category label (e.g. "Series 01 · HTS"), widget: string }
              - name: title
                label: Title
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: body
                label: Body
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - { name: more, label: '"More" hint text', widget: string }
              - { name: photo, label: Photo, widget: image, required: false }
              - name: photoDisplay
                label: Photo — fit & ratio
                widget: object
                collapsed: true
                required: false
                fields: *image_display_fields
              - { name: photoLabel, label: Photo placeholder label, widget: string, required: false }
              - { name: photoCaption, label: Photo placeholder caption, widget: string, required: false }
          - name: homeManifesto
            label: Manifesto section
            widget: object
            collapsed: true
            fields:
              - name: eyebrow
                label: Eyebrow
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: heading
                label: Heading
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - name: paragraphs
                label: Paragraphs
                widget: list
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - { name: signature, label: Signature line, widget: string }
              - { name: signatureCaption, label: Signature caption, widget: string }
              - { name: photo, label: Photo, widget: image, required: false }
              - name: photoDisplay
                label: Photo — fit & ratio
                widget: object
                collapsed: true
                required: false
                fields: *image_display_fields
              - { name: photoLabel, label: Photo placeholder label, widget: string, required: false }
              - { name: photoCaption, label: Photo placeholder caption, widget: string, required: false }
          - name: homeIndustriesSection
            label: Industries section header
            widget: object
            collapsed: true
            fields:
              - name: eyebrow
                label: Eyebrow
                widget: object
                required: false
                fields:
                  - { name: en, label: EN, widget: string, required: false }
                  - { name: de, label: DE, widget: string, required: false }
              - name: heading
                label: Heading
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: body
                label: Body
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
          - name: homeIndustries
            label: Industries (6 tiles)
            widget: list
            fields:
              - { name: num, label: Number prefix (e.g. "01 ·"), widget: string }
              - name: icon
                label: Icon
                widget: select
                options: ['tool-die', 'dental', 'medical', 'goldsmith', 'aerospace', 'battery']
              - name: title
                label: Title
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: body
                label: Body
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
          - name: homeReferencesSection
            label: References section header
            widget: object
            collapsed: true
            fields:
              - name: eyebrow
                label: Eyebrow
                widget: object
                required: false
                fields:
                  - { name: en, label: EN, widget: string, required: false }
                  - { name: de, label: DE, widget: string, required: false }
              - name: heading
                label: Heading
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: body
                label: Body
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
          - name: homeReferences
            label: References (cards)
            widget: list
            fields:
              - { name: href, label: Link URL, widget: string }
              - { name: kind, label: Kind (EN), widget: string }
              - { name: kindDe, label: Kind (DE), widget: string, required: false }
              - name: industry
                label: Industry tag
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: title
                label: Card title
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - { name: photo, label: Photo, widget: image, required: false }
              - name: photoDisplay
                label: Photo — fit & ratio
                widget: object
                collapsed: true
                required: false
                fields: *image_display_fields
              - { name: photoLabel, label: Photo placeholder label, widget: string, required: false }
              - { name: photoCaption, label: Photo placeholder caption, widget: string, required: false }
          - name: homeNewsSection
            label: News section header
            widget: object
            collapsed: true
            fields:
              - name: eyebrow
                label: Eyebrow
                widget: object
                required: false
                fields:
                  - { name: en, label: EN, widget: string, required: false }
                  - { name: de, label: DE, widget: string, required: false }
              - name: heading
                label: Heading
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: ctaLabel
                label: CTA label
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - { name: ctaHref, label: CTA URL, widget: string }
          - name: homeNews
            label: News teasers (3 cards)
            widget: list
            fields:
              - { name: kind, label: Kind (EN), widget: string }
              - { name: kindDe, label: Kind (DE), widget: string, required: false }
              - { name: date, label: Date label, widget: string }
              - name: title
                label: Title
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - { name: photo, label: Photo, widget: image, required: false }
              - name: photoDisplay
                label: Photo — fit & ratio
                widget: object
                collapsed: true
                required: false
                fields: *image_display_fields
              - { name: photoCaption, label: Photo placeholder caption, widget: string, required: false }
          - name: homeQuoteBand
            label: Quote band (dark section)
            widget: object
            collapsed: true
            fields:
              - name: pullStart
                label: Pull quote (opening)
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: pullAccent
                label: Pull quote (accent / closing)
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: attribution
                label: Attribution
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: body
                label: Body
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - name: ctaLabel
                label: CTA label
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - { name: ctaHref, label: CTA URL, widget: string }
      - name: company
        label: Company page copy
        file: src/content/globals/company.md
        fields:
          - name: companyCrumb
            label: Breadcrumb label
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: companyEyebrow
            label: Hero eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: companyHeadline
            label: Hero headline
            widget: object
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - name: companyLead
            label: Hero lead
            widget: object
            fields:
              - { name: en, label: EN, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
              - { name: de, label: DE, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
          - name: companyTimelineEyebrow
            label: Timeline eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: companyTimelineHeading
            label: Timeline heading
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: companyTimelineIntro
            label: Timeline intro
            widget: object
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - name: companyTimeline
            label: Timeline entries
            widget: list
            fields:
              - { name: year, label: Year, widget: string }
              - { name: major, label: 'Highlight (major milestone)?', widget: boolean, default: false, required: false }
              - name: title
                label: Title
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: note
                label: Note
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
          - name: companyPeopleEyebrow
            label: People eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: companyPeopleHeading
            label: People heading
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: companyPeople
            label: People (portraits)
            widget: list
            fields:
              - { name: name, label: Name, widget: string }
              - name: role
                label: Role
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - { name: photo, label: Portrait photo, widget: image, required: false }
              - name: photoDisplay
                label: Portrait — fit & ratio
                widget: object
                collapsed: true
                required: false
                fields: *image_display_fields
              - { name: photoLabel, label: Photo placeholder label, widget: string, required: false }
              - { name: photoCaption, label: Photo placeholder caption, widget: string, required: false }
          - name: companyPlantEyebrow
            label: Plant eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: companyPlantHeading
            label: Plant heading
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: companyPlantParagraphs
            label: Plant paragraphs
            widget: list
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - { name: companyPlantPhoto, label: Plant photo, widget: image, required: false }
          - name: companyPlantPhotoDisplay
            label: Plant photo — fit & ratio
            widget: object
            collapsed: true
            required: false
            fields: *image_display_fields
          - { name: companyPlantPhotoLabel, label: Plant photo placeholder label, widget: string, required: false }
          - { name: companyPlantPhotoCaption, label: Plant photo placeholder caption, widget: string, required: false }
          - name: companyPlantStats
            label: Plant stats (3 cells)
            widget: list
            fields:
              - { name: value, label: Value (large number), widget: string }
              - name: label
                label: Label
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
      - name: contact
        label: Contact page copy
        file: src/content/globals/contact.md
        fields:
          - name: contactEyebrow
            label: Hero eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: contactHeadline
            label: Hero headline
            widget: object
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - name: contactLead
            label: Hero lead
            widget: object
            fields:
              - { name: en, label: EN, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
              - { name: de, label: DE, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
          - name: contactRoutes
            label: Contact routes (4 tiles)
            widget: list
            fields:
              - { name: idx, label: 'Number prefix (e.g. "01 · Sales")', widget: string }
              - name: title
                label: Title
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: body
                label: Body
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
              - { name: phone, label: Phone number, widget: string }
              - { name: when, label: 'Hours line (e.g. "Mo–Fr · 07:00 – 18:00 CET")', widget: string }
          - name: contactFormEyebrow
            label: Form eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: contactFormHeading
            label: Form heading
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: contactFormParagraphs
            label: Form intro paragraphs
            widget: list
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - { name: contactFormPrivacyNote, label: Privacy footer note, widget: string, required: false }
          - name: contactFormSubmitLabel
            label: Submit button label
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - { name: contactFormSubmittedNote, label: Submitted confirmation text, widget: string }
          - name: contactFormTopicOptions
            label: Topic dropdown options
            widget: list
            field: { name: option, label: Option, widget: string }
          - name: contactVisitEyebrow
            label: Visit eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: contactVisitHeading
            label: Visit heading
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - { name: contactVisitAddress, label: Address (multiline), widget: text }
          - name: contactVisitNote
            label: Visit note (under address)
            widget: object
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - { name: contactVisitPhoto, label: Visit photo, widget: image, required: false }
          - name: contactVisitPhotoDisplay
            label: Visit photo — fit & ratio
            widget: object
            collapsed: true
            required: false
            fields: *image_display_fields
          - { name: contactVisitPhotoLabel, label: Visit photo placeholder label, widget: string, required: false }
          - { name: contactVisitPhotoCaption, label: Visit photo placeholder caption, widget: string, required: false }
      - name: guides-hub
        label: Guides & News page copy
        file: src/content/globals/guides-hub.md
        fields:
          - name: guidesEyebrow
            label: Hero eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: guidesHeadline
            label: Hero headline
            widget: object
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - name: guidesLead
            label: Hero lead
            widget: object
            fields:
              - { name: en, label: EN, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
              - { name: de, label: DE, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
          - name: guidesTabs
            label: Filter tabs
            widget: list
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - { name: guidesArchiveHeading, label: Archive section heading, widget: string }
      - name: machines-hub
        label: Machines hub page copy
        file: src/content/globals/machines-hub.md
        fields:
          - name: crumb
            label: Breadcrumb label
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: eyebrow
            label: Eyebrow
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: headline
            label: Hero headline
            widget: object
            fields:
              - { name: en, label: EN, widget: text }
              - { name: de, label: DE, widget: text }
          - name: lead
            label: Hero lead paragraph
            widget: object
            fields:
              - { name: en, label: EN, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
              - { name: de, label: DE, widget: markdown, buttons: ['bold', 'italic', 'link'], editor_components: [], minimal: true }
          - name: families
            label: Family groups
            widget: list
            fields:
              - { name: key, label: Family key, widget: string, hint: 'Short unique id for this series, e.g. "HTS" or "FRX". Machines reference this in their Family field. Use letters/numbers only; avoid spaces.' }
              - { name: seriesNumber, label: Series label (e.g. "Series 01"), widget: string }
              - { name: anchorId, label: Anchor ID (optional), widget: string, required: false }
              - name: heading
                label: Heading
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: subheading
                label: Subheading
                widget: object
                fields:
                  - { name: en, label: EN, widget: string }
                  - { name: de, label: DE, widget: string }
              - name: intro
                label: Intro paragraph
                widget: object
                fields:
                  - { name: en, label: EN, widget: text }
                  - { name: de, label: DE, widget: text }
          - name: compareHeading
            label: Compare section heading
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
          - name: compareColumns
            label: Compare table columns (in order)
            widget: list
            field: { name: column, label: Column, widget: string }
          - name: viewMachineLabel
            label: '"View machine" link label'
            widget: object
            fields:
              - { name: en, label: EN, widget: string }
              - { name: de, label: DE, widget: string }
