Enhance Pine Creek marketing site: real media, galleries, HOA info

Content & media
- Replace placeholder slides with optimized real estate photos (img/gallery)
- Rebuild hero video from the HD intro clip + drone "common area" clips
  (gate -> vineyard -> home front -> Vineyard sign -> pavilion -> fountain),
  cutting the private backyard segment; add mobile variant + poster
- Add "Community & Common Areas" aerial gallery and a community map
- Galleries split strictly by style: Vineyard = Tuscan homes only,
  Custom Homes = non-Tuscan estates

HOA / Homeowner Information
- Real board roster (sourced from pinecreekhoa.com) in a responsive table
- Homeowner Information document library (CC&Rs, Vineyard covenants, safety
  rules, architectural review form, delinquency policy, event reimbursement)
  linking the live PDFs; Premier Management Company reference
- Real general contact email

Design & UX
- Modern full-screen video hero with overlay, sticky nav, refined typography
- Click-to-zoom lightbox for all galleries (keyboard + swipe)
- Google Maps embed in the Kannapolis section
- Favicon set generated from the Pine Creek emblem (svg/png/ico)
- Positive reframe of the Custom Homes copy + lot-availability note
- SEO/Open Graph meta, lazy-loaded images, responsive board/doc layouts

Housekeeping
- SCSS source kept in sync (new partials: hero, sections, gallery, board,
  features); remove stale placeholders, old.index.php, and map artifact
- Add .gitignore (.DS_Store, .claude/, css map); fix docs (index.php -> index.html)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 22:09:46 -04:00
parent f739de7360
commit 50e8b1bcd3
81 changed files with 1847 additions and 689 deletions

View File

@@ -0,0 +1,78 @@
// Image gallery / carousel
.gallery {
position: relative;
border-radius: 6px;
overflow: hidden;
box-shadow: 0 18px 40px -18px rgba(0, 0, 0, 0.45);
&-track {
position: relative;
width: 100%;
height: 460px;
@media (max-width: $m-break) { height: 360px; }
@media (max-width: $xs-break) { height: 260px; }
}
&-img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0;
transition: opacity 0.6s ease;
&.is-active { opacity: 1; }
}
&-arrow {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 44px;
height: 44px;
border: none;
border-radius: 50%;
background: rgba(255, 255, 255, 0.85);
color: $black;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
z-index: 3;
transition: background 0.2s, transform 0.15s;
&:hover { background: $white; }
&:active { transform: translateY(-50%) scale(0.92); }
svg { width: 22px; height: 22px; }
&.prev { left: 14px; }
&.next { right: 14px; }
}
&-dots {
position: absolute;
bottom: 14px;
left: 0;
right: 0;
display: flex;
justify-content: center;
gap: 8px;
z-index: 3;
}
&-dot {
width: 9px;
height: 9px;
border-radius: 50%;
border: none;
padding: 0;
background: rgba(255, 255, 255, 0.55);
cursor: pointer;
transition: background 0.2s, transform 0.2s;
&.is-active { background: $gold; transform: scale(1.25); }
}
}