Files
Chris Olson 50e8b1bcd3 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>
2026-06-22 22:09:46 -04:00

178 lines
3.5 KiB
SCSS

nav.main-nav {
background: $white;
border-bottom-left-radius: 100% 64px;
border-bottom-right-radius: 100% 64px;
box-shadow: 0 4px 5px 0px rgba(0,0,0,.16);
display: flex;
padding: 12px 0 28px;
position: fixed;
width: 100%;
z-index: 20;
transition: box-shadow .25s, padding .25s;
&.scrolled {
padding: 8px 0 20px;
box-shadow: 0 6px 14px 0px rgba(0,0,0,.18);
}
.mobile-nav {
align-items: center;
display: flex;
flex-direction: row;
.mobile-nav--logo {
display: none;
max-width: 100px;
img {
width: 100%;
}
@media (max-width: $m-break) {
display: block;
}
}
.hamburger {
cursor: pointer;
display: none;
margin-left: auto;
position: relative;
width: 30px;
z-index: 1;
&> div {
background-color: $black;
border-radius: 2px;
height: 5px;
margin-bottom: 5px;
transition: .25s;
width: 30px;
&:last-child {
margin-bottom: 0;
}
}
&:hover {
&> div {
background-color: $gold;
}
}
@media (max-width: $m-break) {
display: block;
}
&.in {
& div:first-child {
position: relative;
top: 1px;
transform: rotate(45deg);
}
& div:nth-child(2) {
transform: translate(-17px);
width: 40px;
opacity: 0;
}
& div:last-child {
bottom: 1px;
position: relative;
transform: rotate(-45deg);
}
}
}
}
ul {
align-items: center;
display: flex;
flex-direction: row;
margin: 0;
padding: 0;
@media (max-width: $m-break) {
background-color: $white;
flex-direction: column;
height: 100%;
left: 100%;
padding: 24px;
position: fixed;
top: 0;
transition: .25s;
width: 100%;
&.in {
left: 0;
}
}
li {
@include Libre;
list-style: none;
width: 100%;
a {
@include Libre;
color: $black;
display: inline-block;
font-size: 11px;
letter-spacing: 1px;
text-align: center;
text-decoration: none;
text-transform: uppercase;
width: 100%;
transition: color .2s;
&:hover { color: $gold; }
@media (max-width: $m-break) {
font-size: 16px;
padding-bottom: 22px;
width: 50%;
}
}
&:nth-child(-n+3) {
a {
text-align: left;
@media (max-width: $m-break) {
text-align: left;
}
}
}
&:nth-last-child(-n+3) {
a {
text-align: right;
@media (max-width: $m-break) {
text-align: left;
}
}
}
&.main-nav--logo {
a {
img {
margin: 0 14px;
height: 52px;
width: auto;
}
}
@media (max-width: $m-break) {
display: none;
}
}
}
}
@media (max-width: $m-break) {
border-radius: 0;
padding: 24px 0;
}
}