feat(industries): build 5-page Industries section

Implements the Industries hub + 4 detail pages (Police, Special Forces,
Military, Firefighters) following the same data + partial + custom
template pattern as Solutions.

- inc/industries-data.php: 4 industries keyed by slug, copy verbatim
  from PDF Strategie & Contenu D.7-D.10.
- template-parts/industry-detail.php: hero + section iterator + shared
  conversion banner. Hero differs from Solution's: eyebrow + tagline-as-H1
  (no trademark concat), no upsell block.
- templates/page-industry-detail.php: Custom Template assigned to the
  4 child pages, looks up slug in industries-data.
- templates/page-industries-overview.php: Hub /industries/ with 4 cards.

5 pages seeded by one-shot mu-plugin (asterion-seed-industries.php in
LocalWP) and verified HTTP 200:
  /industries/                  55 KB
  /industries/police/           63 KB
  /industries/special-forces/   62 KB
  /industries/military/         60 KB
  /industries/firefighters/     60 KB

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-09 12:27:25 +02:00
parent 8207c5f72b
commit eb4a13ec0f
4 changed files with 489 additions and 0 deletions

View File

@@ -0,0 +1,130 @@
<?php
/**
* Asterion Bricks — Industry detail partial
*
* Renders one industry page (Police / Special Forces / Military / Firefighters)
* from data passed via `set_query_var('av_industry', $industry_data)`.
*
* Section types : prose | cards | list | cta (same as solution-detail).
*
* Hero differs from solution-detail : eyebrow + H1 (tagline) only — no
* trademark concat, no upsell block.
*
* @package AsterionBricks
*/
defined('ABSPATH') || exit;
$industry = get_query_var('av_industry');
if (! is_array($industry)) {
return;
}
$home_url = home_url('/');
?>
<!-- HERO -->
<section class="av-hero" aria-labelledby="industry-headline">
<div class="av-hero__media" aria-hidden="true">
<div style="width:100%;height:100%;background:
radial-gradient(ellipse at 50% 40%, rgba(11,31,58,0.4), transparent 65%),
linear-gradient(135deg, #081427 0%, #0B1F3A 50%, #1F3252 100%);"></div>
</div>
<div class="av-container">
<div class="av-hero__inner">
<p class="av-hero__eyebrow"><?php echo esc_html($industry['eyebrow']); ?></p>
<h1 id="industry-headline" class="av-hero__headline"><?php echo esc_html($industry['tagline']); ?></h1>
<p class="av-hero__sub"><?php echo esc_html($industry['hero_lead']); ?></p>
<div class="av-hero__ctas">
<?php foreach ($industry['ctas'] as $cta) :
$variant = ($cta['variant'] === 'primary') ? 'av-btn--primary' : 'av-btn--secondary av-btn--on-dark';
?>
<a href="<?php echo esc_url($home_url . ltrim($cta['href'], '/')); ?>" class="av-btn <?php echo esc_attr($variant); ?> av-btn--lg">
<?php echo esc_html($cta['label']); ?>
</a>
<?php endforeach; ?>
</div>
</div>
</div>
</section>
<!-- SECTIONS -->
<?php
foreach ($industry['sections'] as $idx => $section) :
$is_dark = ($idx % 2 === 1);
$section_class = 'av-section' . ($is_dark ? ' av-section--dark' : '');
?>
<section class="<?php echo esc_attr($section_class); ?>" data-av-reveal>
<div class="av-container">
<div class="av-section__head">
<span class="av-eyebrow<?php echo $is_dark ? ' av-eyebrow--gold' : ''; ?>"><?php echo esc_html($section['eyebrow']); ?></span>
<h2 class="av-section__title"><?php echo esc_html($section['title']); ?></h2>
<?php if (! empty($section['lead'])) : ?>
<p class="av-section__lead"><?php echo esc_html($section['lead']); ?></p>
<?php endif; ?>
</div>
<?php if ($section['type'] === 'prose' && ! empty($section['body'])) : ?>
<p class="av-section__lead" style="max-width:72ch;font-size:var(--text-body-lg);">
<?php echo esc_html($section['body']); ?>
</p>
<?php elseif ($section['type'] === 'cards' && ! empty($section['items'])) : ?>
<div class="av-grid-3">
<?php foreach ($section['items'] as $card) : ?>
<article class="av-card<?php echo $is_dark ? ' is-on-dark' : ''; ?> av-card--feature">
<div class="av-card__body">
<h3 class="av-card__title" style="font-size:var(--text-h4);"><?php echo esc_html($card['title']); ?></h3>
<p class="av-card__excerpt"><?php echo esc_html($card['body']); ?></p>
</div>
</article>
<?php endforeach; ?>
</div>
<?php elseif ($section['type'] === 'list' && ! empty($section['items'])) : ?>
<ul style="list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3);max-width:72ch;font-size:var(--text-body-lg);line-height:var(--leading-body-lg);<?php echo $is_dark ? 'color:var(--color-text-on-dark-muted);' : 'color:var(--color-text-secondary);'; ?>">
<?php foreach ($section['items'] as $item) : ?>
<li style="padding-left:var(--space-6);position:relative;">
<span aria-hidden="true" style="position:absolute;left:0;top:0.6em;width:8px;height:8px;background:var(--color-brand-gold);border-radius:50%;"></span>
<?php echo esc_html($item); ?>
</li>
<?php endforeach; ?>
</ul>
<?php if (! empty($section['cta'])) : ?>
<p style="margin-top:var(--space-8);">
<a href="<?php echo esc_url($home_url . ltrim($section['cta']['href'], '/')); ?>" class="av-link<?php echo $is_dark ? ' av-link--on-dark' : ''; ?> av-link--with-arrow">
<?php echo esc_html($section['cta']['label']); ?>
</a>
</p>
<?php endif; ?>
<?php endif; ?>
</div>
</section>
<?php endforeach; ?>
<!-- CONVERSION BANNER (shared) -->
<section class="av-conversion-banner">
<div class="av-container">
<div class="av-conversion-banner__head">
<h2 class="av-conversion-banner__title">Train like the threat is now.</h2>
<p class="av-conversion-banner__lead">Three paths into the platform — pick the one that fits where you are.</p>
</div>
<div class="av-conversion-banner__grid">
<div class="av-conversion-banner__card">
<h3 class="av-conversion-banner__card-title">Request a Demo</h3>
<p class="av-conversion-banner__card-desc">A 30-minute tailored session with our team.</p>
<a href="<?php echo esc_url($home_url . 'request-demo/'); ?>" class="av-btn av-btn--primary av-btn--md">Schedule a demo</a>
</div>
<div class="av-conversion-banner__card">
<h3 class="av-conversion-banner__card-title">Request a T&E Kit</h3>
<p class="av-conversion-banner__card-desc">A PROSERVE case on loan at your facility for 5 to 10 days.</p>
<a href="<?php echo esc_url($home_url . 'request-te-kit/'); ?>" class="av-btn av-btn--on-dark av-btn--secondary av-btn--md">Request the kit</a>
</div>
<div class="av-conversion-banner__card">
<h3 class="av-conversion-banner__card-title">Request a Quote</h3>
<p class="av-conversion-banner__card-desc">A detailed quote and deployment plan within 5 working days.</p>
<a href="<?php echo esc_url($home_url . 'request-quote/'); ?>" class="av-btn av-btn--on-dark av-btn--secondary av-btn--md">Get a quote</a>
</div>
</div>
</div>
</section>