Visual identity
Greater Lehigh Valley Chamber of Commerce
The regional chamber driving economic growth and advocacy for thousands of businesses across the Greater Lehigh Valley.
Compact identity
Favicon scale
logoSvgSemantic system
Brand colour
data-brand- Brand ID
- chamber
- Token package
- @brandos/tokens/css/chamber
- Heading
- Montserrat
- Body
- Lora
01.01 · Chamber Blue ramp
19 shades of Chamber Blue
Chamber Blue identity ramp generated from canonical chamber token data.
01.02 · Chambersteel ramp
19 shades of Chambersteel
Chambersteel identity ramp generated from canonical chamber token data.
01.03 · Semantic slots
Meaning over hue
Components consume semantic slots, never raw ramps. The hue can evolve; the meaning shouldn't.
- Token
--semantic-brand-primary- Class
bg-primary
- Token
--semantic-brand-accent- Class
bg-accent
- Token
--semantic-surface-1- Class
bg-base-100
- Token
--semantic-content-primary- Class
text-base-content
- Token
--semantic-status-informative- Class
text-info
- Token
--semantic-status-success- Class
text-success
- Token
--semantic-status-warning- Class
text-warning
- Token
--semantic-status-error- Class
text-error
02 · Typography
Montserrat on display · Lora for everything else
Heading and body families resolve from the canonical effective specification and its font registry.
--brandOS-font-headingChamber moves with purpose.
- Family
- Montserrat
- Registry ID
- montserrat
- Primary use
- Display and hierarchy
- H1 · DisplayThe system in practice
- H2 · Section89 brands, one system
- H3 · CardProfile contract
- Size
- 4xl
- Leading
- Tight
- Weight
- Bold
--brandOS-font-bodyClear systems make complex decisions feel simple, consistent, and unmistakably on brand.
- Family
- Lora
- Registry ID
- lora
- Primary use
- Reading and interface
- LedeA clear, generous opening that orients the reader fast.
- BodyStandard paragraph text. The quick brown fox jumps over the lazy dog.
- CaptionSmall print, footnotes, and metadata.
- Size
- Base
- Leading
- Normal
- Weight
- Regular
03 · Effective specification
One resolved source for every visual rule
Version 1.0.0, effective . Every rule below is generated from the canonical registry projection.
- 01Defaults
- 1.0.0
- 02Brand
- 1.0.0
- 03Content
- 80edcaa4839312c41dffdfc8983668f3b42700d19e55d7b550048ef828cda53d
- Inherited Shared
- 0
- Defaulted System
- 10
01Colour and accessible pairings
defaultedToken usage, print values, gradients, accent discipline, and derived WCAG pairings.
20 resolved values
Colour and accessible pairings
defaultedToken usage, print values, gradients, accent discipline, and derived WCAG pairings.
20 resolved valuesTechnical details20 canonical values and registry paths
- Accent Token Refs 0
- --semantic-brand-primary
groups.colors.accentTokenRefs[0] - Accent Token Refs 1
- --semantic-brand-accent
groups.colors.accentTokenRefs[1] - Body Surface Token Ref
- --semantic-surface-1
groups.colors.bodySurfaceTokenRef - Body Text Token Ref
- --semantic-content-primary
groups.colors.bodyTextTokenRef - Direction
- 135deg
groups.colors.gradients[0].direction - From Token Ref
- --semantic-brand-primary
groups.colors.gradients[0].fromTokenRef - Id
- brand-accent
groups.colors.gradients[0].id - To Token Ref
- --semantic-brand-accent
groups.colors.gradients[0].toTokenRef - Enforceable
- No
groups.colors.guidance[0].enforceable - Id
- accessible-color-use
groups.colors.guidance[0].id - Text
- Use canonical content pairs for text on semantic surfaces and status fills.
groups.colors.guidance[0].text - Groups Colors Print Values
- No additional entries
groups.colors.printValues - Content Token Ref
- --semantic-status-error-content
groups.colors.status.error.contentTokenRef - Token Ref
- --semantic-status-error
groups.colors.status.error.tokenRef - Content Token Ref
- --semantic-status-informative-content
groups.colors.status.informative.contentTokenRef - Token Ref
- --semantic-status-informative
groups.colors.status.informative.tokenRef - Content Token Ref
- --semantic-status-success-content
groups.colors.status.success.contentTokenRef - Token Ref
- --semantic-status-success
groups.colors.status.success.tokenRef - Content Token Ref
- --semantic-status-warning-content
groups.colors.status.warning.contentTokenRef - Token Ref
- --semantic-status-warning
groups.colors.status.warning.tokenRef
02Typography
Font roles, the base type ladder, and sparse responsive overrides.
12 resolved values
Typography
Font roles, the base type ladder, and sparse responsive overrides.
12 resolved valuesA distinct voice, built to scale.
The quick brown fox jumps over the lazy dog. Clear typography gives every branded surface a recognisable rhythm.
Caption and supporting metadata remain readable at compact sizes.The base hierarchy scales without brand-specific overrides.
Technical details12 canonical values and registry paths
- Font Id
- montserrat
groups.typography.baseLadder[0].fontId - Id
- heading
groups.typography.baseLadder[0].id - Line Height Token Ref
- --brandOS-leading-tight
groups.typography.baseLadder[0].lineHeightTokenRef - Size Token Ref
- --brandOS-text-4xl
groups.typography.baseLadder[0].sizeTokenRef - Weight Token Ref
- --brandOS-font-weight-bold
groups.typography.baseLadder[0].weightTokenRef - Font Id
- lora
groups.typography.baseLadder[1].fontId - Id
- body
groups.typography.baseLadder[1].id - Line Height Token Ref
- --brandOS-leading-normal
groups.typography.baseLadder[1].lineHeightTokenRef - Size Token Ref
- --brandOS-text-base
groups.typography.baseLadder[1].sizeTokenRef - Weight Token Ref
- --brandOS-font-weight-regular
groups.typography.baseLadder[1].weightTokenRef - Groups Typography Guidance
- No additional entries
groups.typography.guidance - Groups Typography Responsive Overrides
- No additional entries
groups.typography.responsiveOverrides
03Logo usage
defaultedClear space, minimum sizes, prohibited uses, and approved lockups.
8 resolved values
Logo usage
defaultedClear space, minimum sizes, prohibited uses, and approved lockups.
8 resolved valuesClear space: Space 4
Technical details8 canonical values and registry paths
- Clear Space Token Ref
- --brandOS-space-4
groups.logos.clearSpaceTokenRef - Groups Logos Co Branding Rules
- No additional entries
groups.logos.coBrandingRules - Context
- Primary digital lockup
groups.logos.minimumSizes[0].context - Id
- digital-primary
groups.logos.minimumSizes[0].id - Width Px
- 120
groups.logos.minimumSizes[0].widthPx - Enforceable
- No
groups.logos.prohibitedUses[0].enforceable - Id
- do-not-distort
groups.logos.prohibitedUses[0].id - Text
- Do not stretch, skew, recolour, or otherwise distort a registered mark.
groups.logos.prohibitedUses[0].text
04Registered assets
defaultedCanonical marks, imagery, and graphic assets referenced by stable identifiers.
2 resolved values
Registered assets
defaultedCanonical marks, imagery, and graphic assets referenced by stable identifiers.
2 resolved valuesTechnical details2 canonical values and registry paths
- Groups Assets Approved Asset Ids
- No additional entries
groups.assets.approvedAssetIds - Groups Assets Guidance
- No additional entries
groups.assets.guidance
05Responsive layout
defaultedBreakpoint ranges, containers, grids, columns, and margins.
34 resolved values
Responsive layout
defaultedBreakpoint ranges, containers, grids, columns, and margins.
34 resolved valuesMargins and containers expand progressively while content order stays stable.
Technical details34 canonical values and registry paths
- Columns
- 4
groups.responsiveLayout.breakpoints[0].columns - Grid Id
- mobile-grid
groups.responsiveLayout.breakpoints[0].gridId - Id
- mobile
groups.responsiveLayout.breakpoints[0].id - Margin Token Ref
- --brandOS-space-4
groups.responsiveLayout.breakpoints[0].marginTokenRef - Max Viewport Px
- 639
groups.responsiveLayout.breakpoints[0].maxViewportPx - Min Viewport Px
- 0
groups.responsiveLayout.breakpoints[0].minViewportPx - Columns
- 8
groups.responsiveLayout.breakpoints[1].columns - Container Width Px
- 960
groups.responsiveLayout.breakpoints[1].containerWidthPx - Grid Id
- tablet-grid
groups.responsiveLayout.breakpoints[1].gridId - Id
- tablet
groups.responsiveLayout.breakpoints[1].id - Margin Token Ref
- --brandOS-space-6
groups.responsiveLayout.breakpoints[1].marginTokenRef - Max Viewport Px
- 1023
groups.responsiveLayout.breakpoints[1].maxViewportPx - Min Viewport Px
- 640
groups.responsiveLayout.breakpoints[1].minViewportPx - Columns
- 12
groups.responsiveLayout.breakpoints[2].columns - Container Width Px
- 1280
groups.responsiveLayout.breakpoints[2].containerWidthPx - Grid Id
- desktop-grid
groups.responsiveLayout.breakpoints[2].gridId - Id
- desktop
groups.responsiveLayout.breakpoints[2].id - Margin Token Ref
- --brandOS-space-8
groups.responsiveLayout.breakpoints[2].marginTokenRef - Min Viewport Px
- 1024
groups.responsiveLayout.breakpoints[2].minViewportPx - Columns
- 4
groups.responsiveLayout.grids[0].columns - Gutter Token Ref
- --brandOS-space-4
groups.responsiveLayout.grids[0].gutterTokenRef - Id
- mobile-grid
groups.responsiveLayout.grids[0].id - Margin Token Ref
- --brandOS-space-4
groups.responsiveLayout.grids[0].marginTokenRef - Columns
- 8
groups.responsiveLayout.grids[1].columns - Gutter Token Ref
- --brandOS-space-5
groups.responsiveLayout.grids[1].gutterTokenRef - Id
- tablet-grid
groups.responsiveLayout.grids[1].id - Margin Token Ref
- --brandOS-space-6
groups.responsiveLayout.grids[1].marginTokenRef - Columns
- 12
groups.responsiveLayout.grids[2].columns - Gutter Token Ref
- --brandOS-space-6
groups.responsiveLayout.grids[2].gutterTokenRef - Id
- desktop-grid
groups.responsiveLayout.grids[2].id - Margin Token Ref
- --brandOS-space-8
groups.responsiveLayout.grids[2].marginTokenRef - Enforceable
- No
groups.responsiveLayout.guidance[0].enforceable - Id
- content-first-responsive
groups.responsiveLayout.guidance[0].id - Text
- Choose responsive changes from content pressure and the declared non-overlapping ranges.
groups.responsiveLayout.guidance[0].text
06Iconography
defaultedApproved library, family, style, weight, licence, and custom exceptions.
12 resolved values
Iconography
defaultedApproved library, family, style, weight, licence, and custom exceptions.
12 resolved valuesTechnical details12 canonical values and registry paths
- Groups Iconography Custom Icon Asset Ids
- No additional entries
groups.iconography.customIconAssetIds - Enforceable
- No
groups.iconography.guidance[0].enforceable - Id
- icons-are-symbols
groups.iconography.guidance[0].id - Text
- Use the approved library for interface symbols; register custom brand marks as assets.
groups.iconography.guidance[0].text - Family
- Material Symbols
groups.iconography.library.family - Id
- material-symbols-rounded
groups.iconography.library.id - Name
- Apache License 2.0
groups.iconography.library.license.name - Reference
- https://github.com/google/material-design-icons/blob/master/LICENSE
groups.iconography.library.license.reference - Spdx Id
- Apache-2.0
groups.iconography.library.license.spdxId - Source
- https://fonts.google.com/icons
groups.iconography.library.source - Style
- Rounded
groups.iconography.library.style - Weight
- 400
groups.iconography.library.weight
07Graphic systems
defaultedNamed visual systems and their registered asset and taxonomy references.
2 resolved values
Graphic systems
defaultedNamed visual systems and their registered asset and taxonomy references.
2 resolved valuesTechnical details2 canonical values and registry paths
- Groups Graphics Systems
- No additional entries
groups.graphics.systems - Groups Graphics Taxonomies
- No additional entries
groups.graphics.taxonomies
08Imagery direction
Photography, product imagery, composition, subject, and treatment guidance.
11 resolved values
Imagery direction
Photography, product imagery, composition, subject, and treatment guidance.
11 resolved valuesShow candid photography of Lehigh Valley business leaders, regional economic events, and chamber-driven community initiatives.
Pair the deep teal brand color with dark navy surfaces and crisp Montserrat headings to convey regional authority and civic leadership.
Apply one repeatable crop, contrast, and surface treatment.
Technical details11 canonical values and registry paths
- Groups Imagery Approved Asset Ids
- No additional entries
groups.imagery.approvedAssetIds - Enforceable
- No
groups.imagery.photography[0].enforceable - Id
- imagery-01
groups.imagery.photography[0].id - Text
- Show candid photography of Lehigh Valley business leaders, regional economic events, and chamber-driven community initiatives.
groups.imagery.photography[0].text - Enforceable
- No
groups.imagery.photography[1].enforceable - Id
- imagery-02
groups.imagery.photography[1].id - Text
- Pair the deep teal brand color with dark navy surfaces and crisp Montserrat headings to convey regional authority and civic leadership.
groups.imagery.photography[1].text - Enforceable
- No
groups.imagery.photography[2].enforceable - Id
- imagery-03
groups.imagery.photography[2].id - Text
- Prefer real member stories, economic milestones, and advocacy outcomes over generic stock imagery or abstract corporate visuals.
groups.imagery.photography[2].text - Groups Imagery Product Imagery
- No additional entries
groups.imagery.productImagery
09Shared components
defaultedShared component participation and bounded state-token overrides.
8 resolved values
Shared components
defaultedShared component participation and bounded state-token overrides.
8 resolved valuesTechnical details8 canonical values and registry paths
- Component Id
- button
groups.components.participation[0].componentId - Groups Components Participation 0 Guidance
- No additional entries
groups.components.participation[0].guidance - State
- default
groups.components.participation[0].stateOverrides[0].state - Token Ref
- --semantic-brand-primary
groups.components.participation[0].stateOverrides[0].tokenRef - Token Slot
- background
groups.components.participation[0].stateOverrides[0].tokenSlot - State
- default
groups.components.participation[0].stateOverrides[1].state - Token Ref
- --semantic-brand-primary-content
groups.components.participation[0].stateOverrides[1].tokenRef - Token Slot
- content
groups.components.participation[0].stateOverrides[1].tokenSlot
10Data visualisation
defaultedCategorical, sequential, and diverging palette intent derived from brand tokens.
10 resolved values
Data visualisation
defaultedCategorical, sequential, and diverging palette intent derived from brand tokens.
10 resolved valuesBrand-derived colour intent supports comparison without changing the underlying data meaning.
Technical details10 canonical values and registry paths
- Categorical Token Refs 0
- --semantic-brand-primary
groups.dataVisualization.categoricalTokenRefs[0] - Categorical Token Refs 1
- --semantic-brand-accent
groups.dataVisualization.categoricalTokenRefs[1] - Categorical Token Refs 2
- --semantic-status-informative
groups.dataVisualization.categoricalTokenRefs[2] - Diverging Token Refs 0
- --semantic-status-error
groups.dataVisualization.divergingTokenRefs[0] - Diverging Token Refs 1
- --semantic-status-success
groups.dataVisualization.divergingTokenRefs[1] - Enforceable
- No
groups.dataVisualization.guidance[0].enforceable - Id
- data-viz-contrast
groups.dataVisualization.guidance[0].id - Text
- Use semantic token references whose labels, strokes, and fills remain distinguishable without colour alone.
groups.dataVisualization.guidance[0].text - Sequential Token Refs 0
- --semantic-surface-3
groups.dataVisualization.sequentialTokenRefs[0] - Sequential Token Refs 1
- --semantic-brand-primary
groups.dataVisualization.sequentialTokenRefs[1]
11Motion
defaultedGoverned motion variance, timing, easing, and reduced-motion expectations.
5 resolved values
Motion
defaultedGoverned motion variance, timing, easing, and reduced-motion expectations.
5 resolved valuesReduced-motion behavior is required.
Technical details5 canonical values and registry paths
- Duration Token Refs 0
- --brandOS-duration-fast
groups.motion.durationTokenRefs[0] - Duration Token Refs 1
- --brandOS-duration-normal
groups.motion.durationTokenRefs[1] - Easing Token Refs 0
- --brandOS-ease-smooth
groups.motion.easingTokenRefs[0] - Groups Motion Guidance
- No additional entries
groups.motion.guidance - Reduced Motion Required
- Yes
groups.motion.reducedMotionRequired
12Prose guidance
defaultedHuman-readable direction distributed with the effective visual specification.
3 resolved values
Prose guidance
defaultedHuman-readable direction distributed with the effective visual specification.
3 resolved valuesAuthor visual guidance in the registry and regenerate every hosted and agent-readable projection.Human-readable guidance
Technical details3 canonical values and registry paths
- Enforceable
- No
groups.proseGuidance[0].enforceable - Id
- registry-first
groups.proseGuidance[0].id - Text
- Author visual guidance in the registry and regenerate every hosted and agent-readable projection.
groups.proseGuidance[0].text
04 · Accessibility
Verified accessible pairings
Live specimens rendered from canonical foreground and background tokens.
Readable by design.
--semantic-brand-accent-contentSurface--semantic-brand-accent- Standard text
- AA passAAA pass
- Large text
- AA passAAA pass
Readable by design.
--semantic-brand-primary-contentSurface--semantic-brand-primary- Standard text
- AA passAAA fail
- Large text
- AA passAAA pass
Readable by design.
--semantic-brand-secondary-contentSurface--semantic-brand-secondary- Standard text
- AA passAAA fail
- Large text
- AA passAAA pass
Readable by design.
--semantic-neutral-contentSurface--semantic-neutral-base- Standard text
- AA passAAA pass
- Large text
- AA passAAA pass
Readable by design.
--semantic-status-error-contentSurface--semantic-status-error- Standard text
- AA passAAA pass
- Large text
- AA passAAA pass
Readable by design.
--semantic-status-informative-contentSurface--semantic-status-informative- Standard text
- AA passAAA pass
- Large text
- AA passAAA pass
Readable by design.
--semantic-status-success-contentSurface--semantic-status-success- Standard text
- AA passAAA pass
- Large text
- AA passAAA pass
Readable by design.
--semantic-status-warning-contentSurface--semantic-status-warning- Standard text
- AA passAAA pass
- Large text
- AA passAAA pass
Readable by design.
--semantic-content-mutedSurface--semantic-surface-1- Standard text
- AA passAAA fail
- Large text
- AA passAAA pass
Readable by design.
--semantic-content-primarySurface--semantic-surface-1- Standard text
- AA passAAA pass
- Large text
- AA passAAA pass
Readable by design.
--semantic-content-mutedSurface--semantic-surface-2- Standard text
- AA passAAA fail
- Large text
- AA passAAA pass
Readable by design.
--semantic-content-primarySurface--semantic-surface-2- Standard text
- AA passAAA pass
- Large text
- AA passAAA pass
Readable by design.
--semantic-content-mutedSurface--semantic-surface-3- Standard text
- AA passAAA fail
- Large text
- AA passAAA pass
Readable by design.
--semantic-content-primarySurface--semantic-surface-3- Standard text
- AA passAAA pass
- Large text
- AA passAAA pass
05 · Example uses
Where Chamber shows up
Real interface patterns shaped by the same identity, semantic tokens and typography defined in this profile.
surfaces
06 · Delivery
Drop in anywhere
Three lines and an attribute, the whole Greater Lehigh Valley Chamber of Commerce brand renders from CDN.
- 01LoadGlobal tokens
- 02ThemeChamber
- 03RenderEvery component
12 immutable assets
Pinned artwork for stable delivery. Themeable -ink follows the active theme, while -light and -dark variants preserve exported colour.
- Release
- v0.43.3
- Integrity
- 12/12
- Payload
- 291 KB
- 01 · Faviconchamber.svgsingle artwork2.4 KBVerified
- 02 · Faviconchamberland.svgsingle artwork5.3 KBVerified
- 03 · Faviconchamberpro.svgsingle artwork486 BVerified
- 04 · Faviconlehighvalleychamber-dark.svgdark artwork2.2 KBVerified
- 05 · Faviconlehighvalleychamber.svgsingle artwork2.2 KBVerified
- 06 · Logochamberland-logo-light.svglight artwork21 KBVerified
- 07 · Logolehighvalleychamber-logo-dark.svgdark artwork29 KBVerified
- 08 · Logolehighvalleychamber-logo-ink.svgink artwork28 KBVerified
- 09 · Logolehighvalleychamber-logo-light.svglight artwork28 KBVerified
- 10 · Iconlehighvalleychamber-mark-ink.svgink artwork946 BVerified
- 11 · Login Bgchamberland-login-bg.svgsingle artwork12 KBVerified
- 12 · Login Bglehighvalleychamber-login-bg.svgsingle artwork160 KBVerified
// Recommended, themeable: currentColor follows the theme when inlined
import ChamberMark from '@brandos/ui/assets/brand-logos/lehighvalleychamber-logo-ink.svg?raw';
// Astro: <span set:html={Mark} /> · React (SVGR): import ...?reactImplementation libraryAlternative asset recipesImage, background and favicon patterns3 recipes
<img
src="https://brand.snyder.tech/cdn/0.43.3/assets/brand-logos/lehighvalleychamber-logo-dark.svg"
alt="Greater Lehigh Valley Chamber of Commerce"
loading="lazy"
decoding="async"
/>.chamber-mark {
background-image: url("https://brand.snyder.tech/cdn/0.43.3/assets/brand-logos/lehighvalleychamber-logo-dark.svg");
background-repeat: no-repeat;
background-size: contain;
}<link rel="icon" type="image/svg+xml" href="https://brand.snyder.tech/cdn/0.43.3/assets/brand-favicons/chamber.svg" />Registry evidenceVersioned asset manifestPaths, sizes and integrity hashesSHA-256
# favicon · 2.4 KB
# sha256:e23465f525ead6b50a8a4f43a410206e87608b908635fd12828d1d98cbeb9282
https://brand.snyder.tech/cdn/0.43.3/assets/brand-favicons/chamber.svg
# favicon · 5.3 KB
# sha256:7b165083f8ad5c67aa0e5bf4e7a1da4b90643be1840a442e7339122288c90aa5
https://brand.snyder.tech/cdn/0.43.3/assets/brand-favicons/chamberland.svg
# favicon · 486 B
# sha256:e9258a5d7558a3c595e056a0922c21e42c1968b6fde6e59bcc0798d3879ffbb1
https://brand.snyder.tech/cdn/0.43.3/assets/brand-favicons/chamberpro.svg
# favicon · 2.2 KB
# sha256:6d484c96c5b699b6ca98fb4ff3c1ae58d1e0bd32c00cd02307d6775781afe526
https://brand.snyder.tech/cdn/0.43.3/assets/brand-favicons/lehighvalleychamber-dark.svg
# favicon · 2.2 KB
# sha256:4b107a203190f36a6c5df7988093b87279f1ade3302212dda22f3da195b3f95c
https://brand.snyder.tech/cdn/0.43.3/assets/brand-favicons/lehighvalleychamber.svg
# logo · 21 KB
# sha256:7b387f26955b77c37209d15a341e425d6b89708a765065efd5abb4268ac8e7ab
https://brand.snyder.tech/cdn/0.43.3/assets/brand-logos/chamberland-logo-light.svg
# logo · 29 KB
# sha256:4c39b20441185980c2f8ead4f0c6505955bc1436ce62e2d0658f59e7011d5fa2
https://brand.snyder.tech/cdn/0.43.3/assets/brand-logos/lehighvalleychamber-logo-dark.svg
# logo · 28 KB
# sha256:cf86639d51975ca25cc09b1eb7b9d34e98a83b99c408b2164e780053b8697489
https://brand.snyder.tech/cdn/0.43.3/assets/brand-logos/lehighvalleychamber-logo-ink.svg
# logo · 28 KB
# sha256:5558672138f14614d61b4dd6952a4ab16284060b646aefc2408c6aefd4bc10ad
https://brand.snyder.tech/cdn/0.43.3/assets/brand-logos/lehighvalleychamber-logo-light.svg
# icon · 946 B
# sha256:1a575568d69ad277aba1aff262205168d5861d896afcfec7f4c939972579aa42
https://brand.snyder.tech/cdn/0.43.3/assets/brand-logos/lehighvalleychamber-mark-ink.svg
# login-bg · 12 KB
# sha256:0dd1686be2179d84bb6164d5c3840e585316db26d7ef4ef47899c56c195f4b91
https://brand.snyder.tech/cdn/0.43.3/assets/login-bg/chamberland-login-bg.svg
# login-bg · 160 KB
# sha256:ee2129eb639e52c71a392c292cfc355f786806e0a44b84e0f1868fe363d12ece
https://brand.snyder.tech/cdn/0.43.3/assets/login-bg/lehighvalleychamber-login-bg.svg