<!--
Donor Wall for Squarespace (Drop in a Code Block)
Bolder patriotic look + memorial styling + animated flag watermark
-->
<div class="donorwall patriotic bold">
<section class="dw-hero">
<div class="dw-flagbanner" aria-hidden="true"></div>
<h2>๐บ๐ธ Raising the Roof for Our Heroes โ Donor Wall ๐บ๐ธ</h2>
<p>With gratitude to our supporters of American Legion Post 222 and the Woody Woodbury Hall Dedication.</p>
</section>
<!-- Controls -->
<div class="dw-controls">
<div class="dw-filters">
<button data-filter="all" class="active">All</button>
<button data-filter="person">Individuals</button>
<button data-filter="memory">In Memory Of</button>
<button data-filter="business">Businesses</button>
</div>
<div class="dw-tier">
<label for="tier">Tier</label>
<select id="tier">
<option value="">All tiers</option>
<option>Platinum Hero</option>
<option>Gold Star</option>
<option>Supporter</option>
<option>Friend</option>
</select>
</div>
<div class="dw-search">
<input id="search" type="search" placeholder="Search name or business..." aria-label="Search donors" />
</div>
</div>
<!-- Results grid -->
<div id="dw-grid" class="dw-grid" aria-live="polite"></div>
</div>
<style>
:root{--navy:#0b2149;--red:#b22234;--white:#ffffff;--blue:#1b3a6b;--gold:#c99a2e;--muted:#42526e;--border:#e6e9f0}
.donorwall{font-family: Montserrat, Arial, sans-serif; color:var(--navy); position:relative}
/* Bold Patriotic background with animated flag watermark */
.donorwall.bold{background:linear-gradient(180deg,rgba(11,33,73,.96),rgba(27,58,107,.92)), url('https://www.transparenttextures.com/patterns/stardust.png'); background-size:cover; color:#fff; position:relative; overflow:hidden}
.donorwall.bold::before{content:""; position:absolute; inset:0; background:url('https://upload.wikimedia.org/wikipedia/commons/5/5c/US_flag_large_51_stars.png') center/80% no-repeat; opacity:0.08; z-index:0; animation:wave 12s ease-in-out infinite alternate}
.donorwall>*{position:relative; z-index:1}
@keyframes wave{
0%{background-position:center top}
50%{background-position:center 10px}
100%{background-position:center -10px}
}
.donorwall.bold .dw-hero h2{color:#fff; text-shadow:0 2px 4px rgba(0,0,0,.5)}
.donorwall.bold .dw-hero p{color:#f0f0f0}
/* Flag banner */
.dw-flagbanner{height:36px; background:linear-gradient(90deg,var(--red) 0 20%, var(--white) 20% 40%, var(--blue) 40% 60%, var(--white) 60% 80%, var(--red) 80% 100%); margin:0 auto 18px; border-radius:6px; box-shadow:0 2px 6px rgba(0,0,0,.3)}
.donorwall .dw-hero{text-align:center; margin: 0 auto 1.25rem; max-width: 900px; padding-top:.5rem}
.donorwall .dw-hero h2{font-size: clamp(1.6rem, 2.5vw, 2.2rem); margin: 0.5rem 0; font-weight:900}
.donorwall .dw-controls{display:grid; grid-template-columns: 1fr auto auto; gap:.75rem; align-items:center; margin: 1rem 0 1.25rem}
.donorwall .dw-filters{display:flex; flex-wrap:wrap; gap:.5rem}
.donorwall .dw-filters button{border:2px solid #fff; background:var(--blue); color:#fff; padding:.5rem .9rem; border-radius:999px; cursor:pointer; font-size:1rem; font-weight:600; text-transform:uppercase}
.donorwall .dw-filters button.active, .donorwall .dw-filters button:hover{background:var(--red); border-color:#fff}
.donorwall .dw-tier select, .donorwall .dw-search input{border:2px solid #fff; padding:.5rem .7rem; border-radius:.6rem; font-size:.95rem}
.donorwall .dw-grid{display:grid; grid-template-columns: repeat(12, 1fr); gap: 18px; padding-bottom:16px}
@media (max-width:1100px){ .donorwall .dw-grid{grid-template-columns: repeat(8, 1fr);} }
@media (max-width:700px){ .donorwall .dw-grid{grid-template-columns: repeat(2, minmax(0,1fr)); gap:14px} .donorwall .dw-controls{grid-template-columns:1fr} .donorwall .dw-card, .donorwall .dw-card.business{grid-column:auto} .donorwall .dw-card{padding:18px} .donorwall .dw-name{font-size:1.05rem} }
/* Card */
.donorwall .dw-card{grid-column: span 4; background:#fff; color:var(--navy); border:2px solid var(--navy); border-radius:18px; box-shadow:0 4px 8px rgba(9,30,66,.3); padding:16px; display:flex; flex-direction:column; align-items:center; text-align:center; position:relative; overflow:hidden; transition:transform .2s}
.donorwall .dw-card:hover{transform:translateY(-4px); box-shadow:0 6px 12px rgba(0,0,0,.35)}
.donorwall .dw-card.business{flex-direction:row; text-align:left; grid-column: span 6}
@media (max-width:700px){ .donorwall .dw-card.business{grid-column: span 4; flex-direction:column; text-align:center} }
/* Patriotic border accent */
.donorwall .dw-card::after{content:""; position:absolute; left:0; right:0; top:0; height:6px; background:linear-gradient(90deg,var(--red),var(--white),var(--blue))}
.donorwall .dw-logo{width:84px; height:84px; border-radius:14px; border:2px solid var(--navy); display:grid; place-items:center; overflow:hidden; background:#f6f8fb; margin-bottom:8px}
.donorwall .dw-logo img{width:100%; height:100%; object-fit:contain}
.donorwall .dw-body{flex:1}
.donorwall .dw-name{font-weight:900; font-size:1.1rem}
.donorwall .dw-meta{font-size:.95rem; color:var(--muted); margin-top:2px}
.donorwall .dw-badge{display:inline-flex; align-items:center; gap:6px; font-size:.82rem; background:var(--navy); color:#fff; padding:.25rem .7rem; border-radius:999px; margin-top:8px; font-weight:600}
.donorwall .dw-badge.flag::before{content:"๐บ๐ธ"; font-size:.95em; line-height:1; filter:saturate(1.1)}
/* Memorial chip */
.donorwall .dw-memory{display:inline-flex; align-items:center; gap:6px; margin-top:8px; font-size:.85rem; background:rgba(178,34,52,.1); color:var(--red); padding:.3rem .7rem; border:2px solid rgba(178,34,52,.4); border-radius:999px; font-weight:600}
.donorwall .dw-memory .icon{font-size:1rem; line-height:1}
.donorwall .dw-actions{display:flex; gap:8px; margin-top:8px; justify-content:center}
.donorwall .dw-actions a{font-size:.9rem; text-decoration:none; color:var(--navy); border:2px solid var(--navy); padding:.35rem .7rem; border-radius:8px; font-weight:600}
.donorwall .dw-actions a:hover{background:var(--navy); color:#fff}
</style>
<script>
<!--
Donor Wall for Squarespace (Drop in a Code Block)
Fixed Script so donors render properly
-->
<div class="donorwall patriotic bold">
<section class="dw-hero">
<div class="dw-flagbanner" aria-hidden="true"></div>
<h2>๐บ๐ธ Raising the Roof for Our Heroes โ Donor Wall ๐บ๐ธ</h2>
<p>With gratitude to our supporters of American Legion Post 222 and the Woody Woodbury Hall Dedication.</p>
</section>
<!-- Controls -->
<div class="dw-controls">
<div class="dw-filters">
<button data-filter="all" class="active">All</button>
<button data-filter="person">Individuals</button>
<button data-filter="memory">In Memory Of</button>
<button data-filter="business">Businesses</button>
</div>
<div class="dw-tier">
<label for="tier">Tier</label>
<select id="tier">
<option value="">All tiers</option>
<option>Platinum Hero</option>
<option>Gold Star</option>
<option>Supporter</option>
<option>Friend</option>
</select>
</div>
<div class="dw-search">
<input id="search" type="search" placeholder="Search name or business..." aria-label="Search donors" />
</div>
</div>
<!-- Results grid -->
<div id="dw-grid" class="dw-grid" aria-live="polite"></div>
</div>
<style>
/* styles unchanged for brevity */
</style>
<script>
document.addEventListener('DOMContentLoaded', function(){
const donors = [
{ type: 'person', name: 'Ed and Barbara Newman', tier: 'Patriot', amount: 500, memory: '' },
{ type: 'person', name: 'Gator Carter', tier: 'Bronze Star', amount: 2000, memory: 'In memory of Vicki' },
{ type: 'person', name: "Billy O'Hara", tier: 'Friend', amount: 0, memory: '' },
{ type: 'business', name: 'Ericaโs Plumbing', tier: 'Business Donation', donation: 'Business Donation โ 1-year membership (service in-kind)', url: 'https://www.ericasplumbing.com/', logo: 'https://images.squarespace-cdn.com/content/687f76ea7c37801d2b458d6e/a57b5634-742f-4a6f-b47e-7d58b15e73ba/thumbnail_image.png?content-type=image%2Fpng' },
{ type: 'business', name: 'Koala Cooling', tier: 'Business Donation', donation: 'Gift Certificate', url: 'https://example.com', logo: 'https://images.squarespace-cdn.com/content/687f76ea7c37801d2b458d6e/57ae7c31-f5a6-409e-9f44-81538efba69c/koaka.png?content-type=image%2Fpng' },
{ type: 'business', name: 'Lickie Stickie BBQ', tier: 'Business Donation', donation: 'Pig Donation', url: 'https://www.LickieStickieBBQ.com', logo: 'https://images.squarespace-cdn.com/content/687f76ea7c37801d2b458d6e/48e1c3f1-ba2c-47f2-a578-03e732762166/LICKIE+GOOD+LOGO.jpg?content-type=image%2Fjpeg' },
{ type: 'business', name: 'Tropical Acres', tier: 'Gift Card Donation', donation: 'Gift Card', url: 'https://tropicalacres.com', logo: 'https://images.squarespace-cdn.com/content/687f76ea7c37801d2b458d6e/3956487a-68a6-4368-a20c-88fe654ad929/troical+acres%27.jpg?content-type=image%2Fjpeg' },
{ type: 'business', name: 'Mai Kai', tier: 'Business Donation', donation: 'Gift Certificate for Dinner and Show', url: 'https://www.maikai.com', logo: 'https://images.squarespace-cdn.com/content/687f76ea7c37801d2b458d6e/233d0175-dbfb-44fc-85cd-0ef8ca9dd3b5/mai+kai%27.png?content-type=image%2Fpng' },
{ type: 'business', name: 'Chick-fil-A', tier: 'Gift Card Donation', donation: 'Gift Card', url: 'https://www.chick-fil-a.com', logo: 'https://images.squarespace-cdn.com/content/687f76ea7c37801d2b458d6e/a281a8e9-de50-4613-92aa-46ea42416424/chick+fila.jpg?content-type=image%2Fjpeg' },
{ type: 'business', name: 'AquaPlex Fort Lauderdale', tier: 'Business Donation', donation: 'Support Gift', logo: 'https://images.squarespace-cdn.com/content/687f76ea7c37801d2b458d6e/979e86b0-da65-4009-8d9c-d688cebe4a8a/AquaPlex-Fort-Lauderdale_LP-Logo_Courtesy-of-AquaPlex-Fort-Lauderdale-scaled.jpg?content-type=image%2Fjpeg' }
];
const grid = document.getElementById('dw-grid');
const filterButtons = document.querySelectorAll('.dw-filters button');
const tierSelect = document.getElementById('tier');
const searchInput = document.getElementById('search');
let currentFilter = 'all';
function fmtUSD(n){
return n ? new Intl.NumberFormat('en-US',{style:'currency',currency:'USD',maximumFractionDigits:0}).format(n) : '';
}
function makeCard(d){
const card = document.createElement('article');
card.className = 'dw-card ' + (d.type==='business'?'business':'');
// add logo for business donors
if(d.type==='business' && d.logo){
const logo = document.createElement('div');
logo.className = 'dw-logo';
const img = document.createElement('img');
img.src = d.logo; img.alt = d.name + ' logo';
logo.appendChild(img);
card.appendChild(logo);
}
const body = document.createElement('div');
body.className = 'dw-body';
const name = document.createElement('div');
name.className = 'dw-name';
name.textContent = d.name;
const meta = document.createElement('div');
meta.className = 'dw-meta';
let metaParts = [];
if(d.tier) metaParts.push(d.tier);
if(d.type==='person' && d.amount) metaParts.push(fmtUSD(d.amount));
if(d.type==='business' && d.donation) metaParts.push(d.donation);
meta.textContent = metaParts.join(' โข ');
body.appendChild(name);
body.appendChild(meta);
card.appendChild(body);
return card;
}
function render(){
grid.innerHTML = '';
donors.forEach(d => grid.appendChild(makeCard(d)));
}
render();
});