seahaven-site/social-accountability/index.njk

106 lines
5.1 KiB
Text
Raw Normal View History

Migrate to thin Eleventy build + a11y/SEO/perf/CI hardening (#20) * chore(build): add Eleventy scaffold Thin Eleventy build (v3.1.6, pinned) — passthrough-copies assets/, robots.txt, sitemap.xml; outputs flat HTML to _site/. _data/site.json holds site-wide constants; _data/images.json maps image keys to src+width+height for the {% image %} shortcode (CLS fix). Output stays flat HTML served from the same S3 bucket + CloudFront. * refactor(templates): base layout, partials, shared JS, CSS extraction - _includes/base.njk + nav/mobile-menu/footer partials reproduce the shared chrome once (was hand-duplicated across 13 pages). Adds a skip-link and <main> landmark (WCAG 2.4.1), aria-expanded/role=dialog hooks on the menu, and a {% year %} shortcode replacing document.write. - assets/js/nav.js: extracted sticky-nav + accessible mobile-menu dialog (focus trap, Escape, focus return) + rAF-throttled hero parallax. - assets/js/form.js: Basin AJAX submit with an accessible status region. - assets/css/*.css: per-page inline <style> extracted into page CSS files (home/about/services/careers/jobs/contact/social/legal/404); skip-link + :focus-visible added to main.css. - index.njk: homepage converted as the reference page. * fix(css): make hero-bg url root-relative after extraction Inline CSS used a document-relative url('assets/...') that resolves correctly from / but breaks once moved into /assets/css/home.css. Rewrite to /assets/images/. * refactor(pages): convert 12 pages to Eleventy templates Convert about, services, careers (listing + 3 jobs), contact, social- accountability, privacy-policy, terms-of-service, eula, and 404 from standalone HTML to .njk against base.njk. Each page now carries only front-matter (title/description/SEO) + its <main> content; shared head/ nav/footer/scripts come from the layout. JobPosting + LocalBusiness JSON-LD preserved. Images use the {% image %} shortcode (width/height). Contact gets an accessible #form-status region. form.js generalized to wire BOTH the contact form and the .apply-form job application forms (was contact-only), preserving each submit button's own label. * fix(a11y): footer contrast to WCAG AA + scope services .form-group Raise footer text colors (footer-bottom/col/brand/social/contact) and darken --text-muted so muted text clears 4.5:1 on the dark footer and warm-gray surfaces. Scope services' flex .form-group override to .contact-form .form-group so it can't leak to the global rule. * perf(seo): og-cover image, webp logos, hero preload Add a real 1200x630 og-cover.jpg (was a 153x49 favicon) wired site-wide via base.njk og:image/twitter:image. Convert nav/footer logos to webp (nav 58KB->22KB); PNGs kept as passthrough so old URLs still resolve. Preload the LCP hero image on the homepage (fetchpriority=high). All <img> carry width/height via the image shortcode (CLS). * ci(deploy): build-then-sync, cache headers, safe concurrency Rename main.yml -> deploy.yaml (org convention). Build with Eleventy (npm ci && npm run build) and sync _site/ instead of the repo root, so only built output ships (no source/templates/node_modules). Split Cache-Control (1-day assets, no-cache HTML) and keep /* invalidation since filenames are not yet fingerprinted. concurrency cancel-in-progress false so a deploy is never cut mid sync. ci.yaml validates _site/ via ci-static build mode. * docs: README for the Eleventy build and structure * fix(security): wire services form, guard build, harden deploy Fable build-review findings: - BLOCK: services puts .contact-form on the <form> itself (contact uses a wrapper div), so form.js selector '.contact-form form' never matched it — the services lead form submitted natively with an empty reCAPTCHA token. Selector now also matches form.contact-form. - Guard the build before the --delete S3 sync: require index/contact/404 and >=40 files, so a silently-empty build can never wipe the live bucket. - npm ci --ignore-scripts on deploy (build verified to pass) to shrink the supply-chain window on the OIDC-credentialed runner. - Escape quotes in the image shortcode alt text.
2026-06-12 17:02:06 -04:00
---
layout: base.njk
title: "Social Accountability — Sea Haven Industries"
description: "Learn about Sea Haven Industries' commitment to social accountability and responsible business practices in the construction industry."
pageCss: social
---
<!-- ── Page Hero ── -->
<section class="page-hero">
<div class="container">
<nav class="breadcrumb" aria-label="Breadcrumb">
<a href="/">Home</a>
<span aria-hidden="true">/</span>
<a href="/about/">About</a>
<span aria-hidden="true">/</span>
<span>Social Accountability</span>
</nav>
<h1>Social Accountability</h1>
</div>
</section>
<!-- ── Intro ── -->
<section class="intro-section section">
<div class="container">
<div class="intro-content">
<h2>At Sea Haven Industries, Inc.,</h2>
<p>We are committed to maintaining social accountability and responsibility in compliance with SA8000 International Standards. Our dedication to ethical business practices is integral to our mission and operations. We believe that social accountability is not just a responsibility but a foundation for sustainable growth and success. We are dedicated to fostering a culture of respect, equity, and ethical behavior throughout our organization. We strive to create a positive impact on our employees, communities, and the environment.</p>
<p>Click to expand the sections below for more information on our core principles:</p>
</div>
</div>
</section>
<!-- ── Accordion ── -->
<section class="accordion-section section">
<div class="container">
<div class="accordion">
<details>
<summary>Respect for Workers' Rights</summary>
<div class="accordion-body">
<p>We ensure fair treatment of all employees and uphold their rights to freedom of association, collective bargaining, and a safe working environment. Discrimination, forced labor, and child labor are strictly prohibited.</p>
</div>
</details>
<details>
<summary>Health &amp; Safety</summary>
<div class="accordion-body">
<p>The health and safety of our employees are paramount. We provide a safe and healthy workplace, adhering to all regulatory standards and continuously improving our safety practices and training programs.</p>
</div>
</details>
<details>
<summary>Fair Compensation</summary>
<div class="accordion-body">
<p>We provide fair wages and benefits that meet or exceed legal and industry standards. We ensure that all employees are compensated justly for their work, including overtime pay.</p>
</div>
</details>
<details>
<summary>Working Hours</summary>
<div class="accordion-body">
<p>We comply with applicable laws and industry standards regarding working hours. We ensure that employees have the right to rest and leisure, including adequate time off.</p>
</div>
</details>
<details>
<summary>Ethical Business Practices</summary>
<div class="accordion-body">
<p>We conduct our business with integrity, transparency, and accountability. We are committed to combating corruption, bribery, and unethical practices in all forms.</p>
</div>
</details>
<details>
<summary>Environmental Responsibility</summary>
<div class="accordion-body">
<p>We recognize our responsibility to protect the environment. We strive to minimize our environmental footprint through sustainable practices, resource conservation, and pollution prevention.</p>
</div>
</details>
<details>
<summary>Community Engagement</summary>
<div class="accordion-body">
<p>We actively engage with and support the communities in which we operate. We contribute to local development, respect cultural diversity, and promote social inclusion.</p>
</div>
</details>
<details>
<summary>Continuous Improvement</summary>
<div class="accordion-body">
<p>We are committed to continuous improvement in all aspects of social accountability. We regularly review and update our policies and practices to align with evolving standards and stakeholder expectations.</p>
</div>
</details>
</div>
</div>
</section>
<!-- ── CTA Banner ── -->
<section class="cta-section">
<div class="container">
<div class="cta-inner">
<div class="cta-text">
<p class="label">Start Your Project</p>
<h2 class="display-lg">Get in Touch, Get Results</h2>
<p>Have questions or ready to start your project? Contact us today for prompt, professional service and expert advice. We're here to help with all your construction needs.</p>
</div>
<div class="cta-actions">
<a href="/contact/" class="btn btn-primary">Contact Us</a>
<div class="cta-phone">
<strong>(631) 776-5102</strong>
</div>
</div>
</div>
</div>
</section>