← back to NationalPaperHangers
views/public/installer-tpl-concierge.ejs
70 lines
<%- include('../partials/head', { title, bodyClass: 'tpl-concierge' }) %>
<%- include('../partials/header') %>
<%
function _heroUrl() {
var s = installer.template_settings || {};
if (s.hero_url) return s.hero_url;
if (portfolio.length && portfolio[0].image_url) return portfolio[0].image_url;
var seg = (typeof pickSegmentImage === 'function') ? pickSegmentImage(installer) : null;
return seg ? seg.file : null;
}
var heroUrl = _heroUrl();
var founded = installer.founded_year || null;
%>
<article class="tpl-root">
<p class="cc-eyebrow">National Paper Hangers</p>
<div class="cc-rule"></div>
<h1 class="cc-name"><%= installer.business_name %></h1>
<p class="cc-place"><%= [installer.city, installer.state].filter(Boolean).join(' · ') %><% if (founded) { %> · Est. <%= founded %><% } %></p>
<% if (installer.headline) { %><p class="cc-line">"<%= installer.headline %>"</p><% } %>
<% if (heroUrl) { %><img class="cc-hero" src="<%= heroUrl %>" alt="<%= installer.business_name %>"><% } %>
<% if (installer.claim_status === 'unclaimed') { %>
<div class="tpl-claim-cta" style="color:#c8a96a;border-color:#c8a96a;text-align:left;font-family:Inter,sans-serif;font-size:13px">
<div style="flex:1">If you operate <%= installer.business_name %>, claim this listing to enable bookings, the Verified mark, and reply tracking.</div>
<a href="/installer/<%= installer.slug %>/claim" style="color:#c8a96a;text-decoration:underline">Claim →</a>
</div>
<% } %>
<% if (installer.bio) { %><div class="cc-bio"><%= installer.bio %></div><% } %>
<div class="cc-strip">
<div>Service radius<b><%= installer.service_radius_miles || '—' %> mi</b></div>
<% if (installer.team_size) { %><div>Team<b><%= installer.team_size %></b></div><% } %>
<% if (acceptance) { %><div>Accept rate<b><%= acceptance.rate %>%</b></div><% } %>
<% if ((credentials || []).length) { %><div>Brand-trained<b><%= credentials.length %></b></div><% } %>
</div>
<% if (portfolio.length) { %>
<div class="cc-portfolio">
<% portfolio.slice(0,4).forEach(function(p){ %>
<figure>
<% if (p.image_url) { %><img class="tpl-portfolio-img" src="<%= p.image_url %>" alt="<%= p.title %>" loading="lazy" style="filter:grayscale(0.1) contrast(1.05)"><% } %>
<figcaption><%= p.title %><% if (p.brand) { %> · <%= p.brand %><% } %></figcaption>
</figure>
<% }); %>
</div>
<% } %>
<% if ((credentials || []).length) { %>
<p class="cc-eyebrow" style="margin-top:0">Brand-trained</p>
<p style="font-family:Inter,sans-serif;font-size:13px;letter-spacing:0.15em;text-transform:uppercase;color:#aaa097;margin:0 0 32px">
<% credentials.slice(0,8).forEach(function(c, i){ %><%= i ? ' · ' : '' %><%= c.brand %><% }); %>
</p>
<% } %>
<% if (installer.claim_status === 'claimed') { %>
<div class="cc-cta">
<a href="/installer/<%= installer.slug %>/book">Reserve a consultation</a>
</div>
<% } %>
<%- include('../partials/social-videos') %>
</article>
<%- include('../partials/paper-contributions') %>
<%- include('../partials/coi-request') %>
<%- include('../partials/call-installer') %>
<%- include('../partials/footer') %>