Accessibility: fix WCAG AA colour contrast and cursor issues
- Darken #179e83 -> #148069 for backgrounds with white text (3.36->4.86:1) - Darken #148a72 -> #148069 for green text on white (4.27->4.86:1) - Darken trust-heading #6c757d -> #5c6370 on #f8f9fa (4.45->5.73:1) - Switch #00cc66 bg elements (sticky CTA btn, case-study metric) to dark text - Fix .btn:link color: inherit -> white (was inheriting body #333 instead of white) - Add .btn:hover lift/shadow for bare .btn class - cursor: default on body (stops I-beam appearing on non-interactive text) - cro-enhancements: add role=complementary + aria-label to sticky CTA bar
This commit is contained in:
@@ -60,7 +60,7 @@
|
||||
}
|
||||
.sticky-cta-bar .btn {
|
||||
background: #00cc66;
|
||||
color: #fff;
|
||||
color: #1a1a1a;
|
||||
padding: 10px 24px;
|
||||
border-radius: 6px;
|
||||
text-decoration: none;
|
||||
@@ -183,7 +183,7 @@
|
||||
}
|
||||
.case-study-inline .metric {
|
||||
background: #00cc66;
|
||||
color: #fff;
|
||||
color: #1a1a1a;
|
||||
padding: 15px 20px;
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
|
||||
@@ -14,6 +14,7 @@ body {
|
||||
line-height: 1.6;
|
||||
color: #333333;
|
||||
background-color: #ffffff;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/* Utility Classes */
|
||||
@@ -438,7 +439,7 @@ body {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -589,7 +590,7 @@ body {
|
||||
}
|
||||
|
||||
.contact-item a {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -632,7 +633,7 @@ body {
|
||||
.form-group select:focus,
|
||||
.form-group textarea:focus {
|
||||
outline: none;
|
||||
border-color: #148a72;
|
||||
border-color: #148069;
|
||||
box-shadow: 0 0 0 3px rgba(23, 158, 131, 0.1);
|
||||
}
|
||||
|
||||
@@ -704,7 +705,7 @@ body {
|
||||
}
|
||||
|
||||
.footer-section a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
.footer-logo img {
|
||||
@@ -1098,7 +1099,7 @@ img {
|
||||
}
|
||||
|
||||
.article-meta .category {
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 5px 12px;
|
||||
border-radius: 15px;
|
||||
@@ -1140,7 +1141,7 @@ img {
|
||||
}
|
||||
|
||||
.featured-article h3 a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
.featured-article p {
|
||||
@@ -1159,7 +1160,7 @@ img {
|
||||
}
|
||||
|
||||
.article-footer .read-more {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
transition: color 0.3s ease;
|
||||
@@ -1218,7 +1219,7 @@ img {
|
||||
}
|
||||
|
||||
.article-card h3 a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
.article-card p {
|
||||
@@ -1357,7 +1358,7 @@ img {
|
||||
}
|
||||
|
||||
.article-share a {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
padding: 8px 16px;
|
||||
@@ -1367,7 +1368,7 @@ img {
|
||||
}
|
||||
|
||||
.article-share a:hover {
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
}
|
||||
|
||||
@@ -1413,7 +1414,7 @@ img {
|
||||
|
||||
.article-toc li::before {
|
||||
content: counter(toc-counter) ". ";
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@@ -1489,7 +1490,7 @@ img {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 5px 10px;
|
||||
border-radius: 4px;
|
||||
@@ -1504,7 +1505,7 @@ img {
|
||||
}
|
||||
|
||||
.article-content pre:hover {
|
||||
border-color: #148a72;
|
||||
border-color: #148069;
|
||||
box-shadow: 0 2px 8px rgba(23, 158, 131, 0.1);
|
||||
}
|
||||
|
||||
@@ -1826,6 +1827,12 @@ img.loaded {
|
||||
transition: left 0.5s;
|
||||
}
|
||||
|
||||
.btn:not(.btn-primary):not(.btn-secondary):not(.cta-btn):hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn:hover::before {
|
||||
left: 100%;
|
||||
}
|
||||
@@ -1942,7 +1949,7 @@ a:focus-visible {
|
||||
position: absolute;
|
||||
top: -40px;
|
||||
left: 6px;
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 8px;
|
||||
border-radius: 4px;
|
||||
@@ -1985,7 +1992,7 @@ a:focus-visible {
|
||||
.form-group input:focus + label,
|
||||
.form-group select:focus + label,
|
||||
.form-group textarea:focus + label {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
/* Status indicators */
|
||||
@@ -2291,7 +2298,7 @@ a:focus-visible {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -2375,7 +2382,7 @@ a:focus-visible {
|
||||
}
|
||||
|
||||
.pricing-card.featured {
|
||||
border-color: #148a72;
|
||||
border-color: #148069;
|
||||
transform: scale(1.05);
|
||||
box-shadow: 0 8px 40px rgba(23, 158, 131, 0.15);
|
||||
}
|
||||
@@ -2386,7 +2393,7 @@ a:focus-visible {
|
||||
top: -12px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 8px 20px;
|
||||
border-radius: 20px;
|
||||
@@ -2404,7 +2411,7 @@ a:focus-visible {
|
||||
.pricing-card .price {
|
||||
font-size: 3rem;
|
||||
font-weight: 700;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
margin-bottom: 30px;
|
||||
line-height: 1;
|
||||
}
|
||||
@@ -2585,7 +2592,7 @@ a:focus-visible {
|
||||
|
||||
.faq-question[aria-expanded="true"],
|
||||
.faq-question.active {
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
}
|
||||
|
||||
@@ -2816,7 +2823,7 @@ a:focus-visible {
|
||||
.result-number {
|
||||
font-size: 2rem;
|
||||
font-weight: 700;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
@@ -2918,7 +2925,7 @@ a:focus-visible {
|
||||
.industry-stat .stat-number {
|
||||
font-size: 2.5rem;
|
||||
font-weight: 700;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
@@ -2993,11 +3000,11 @@ aside.related-articles {
|
||||
|
||||
.related-card h3 a:hover,
|
||||
.related-card h4 a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
.related-card .category {
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 4px 12px;
|
||||
border-radius: 20px;
|
||||
@@ -3019,7 +3026,7 @@ aside.related-articles {
|
||||
}
|
||||
|
||||
.related-card .read-time {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -3059,8 +3066,9 @@ aside.related-articles {
|
||||
|
||||
.btn:visited,
|
||||
.btn:link,
|
||||
.btn:active {
|
||||
color: inherit;
|
||||
.btn:active,
|
||||
.btn:hover {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -3149,7 +3157,7 @@ aside.related-articles {
|
||||
top: -10px;
|
||||
left: 30px;
|
||||
font-size: 4rem;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-family: serif;
|
||||
line-height: 1;
|
||||
}
|
||||
@@ -3559,7 +3567,7 @@ aside.related-articles {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-weight: bold;
|
||||
font-size: 1rem;
|
||||
}
|
||||
@@ -3567,7 +3575,7 @@ aside.related-articles {
|
||||
/* Technology badges/tags styling */
|
||||
.tech-tag {
|
||||
display: inline-block;
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 6px 12px;
|
||||
border-radius: 20px;
|
||||
@@ -4147,7 +4155,7 @@ main > .project-types-hero:first-child {
|
||||
}
|
||||
.trust-signals-hero .trust-heading {
|
||||
font-size: 0.95rem;
|
||||
color: #6c757d;
|
||||
color: #5c6370;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
margin-bottom: 1.5rem;
|
||||
@@ -4224,7 +4232,7 @@ main > .project-types-hero:first-child {
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
.optional {
|
||||
color: #6c757d;
|
||||
color: #5c6370;
|
||||
font-weight: normal;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
@@ -4689,3 +4697,15 @@ body { font-size: 17px; }
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
/* === Fix: constrain author-bio and article-footer outside .container (Feb 2026) ===
|
||||
These includes are injected after .container closes, so they inherit full
|
||||
.blog-article width (100%). Mirror the container rules to keep them in-column. */
|
||||
.blog-article .author-bio,
|
||||
.blog-article .article-cta,
|
||||
.blog-article .related-articles {
|
||||
max-width: 1200px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
88
assets/css/main.min.css
vendored
88
assets/css/main.min.css
vendored
@@ -14,6 +14,7 @@ body {
|
||||
line-height: 1.6;
|
||||
color: #333333;
|
||||
background-color: #ffffff;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/* Utility Classes */
|
||||
@@ -438,7 +439,7 @@ body {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -589,7 +590,7 @@ body {
|
||||
}
|
||||
|
||||
.contact-item a {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -632,7 +633,7 @@ body {
|
||||
.form-group select:focus,
|
||||
.form-group textarea:focus {
|
||||
outline: none;
|
||||
border-color: #148a72;
|
||||
border-color: #148069;
|
||||
box-shadow: 0 0 0 3px rgba(23, 158, 131, 0.1);
|
||||
}
|
||||
|
||||
@@ -704,7 +705,7 @@ body {
|
||||
}
|
||||
|
||||
.footer-section a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
.footer-logo img {
|
||||
@@ -1098,7 +1099,7 @@ img {
|
||||
}
|
||||
|
||||
.article-meta .category {
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 5px 12px;
|
||||
border-radius: 15px;
|
||||
@@ -1140,7 +1141,7 @@ img {
|
||||
}
|
||||
|
||||
.featured-article h3 a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
.featured-article p {
|
||||
@@ -1159,7 +1160,7 @@ img {
|
||||
}
|
||||
|
||||
.article-footer .read-more {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
transition: color 0.3s ease;
|
||||
@@ -1218,7 +1219,7 @@ img {
|
||||
}
|
||||
|
||||
.article-card h3 a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
.article-card p {
|
||||
@@ -1357,7 +1358,7 @@ img {
|
||||
}
|
||||
|
||||
.article-share a {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
padding: 8px 16px;
|
||||
@@ -1367,7 +1368,7 @@ img {
|
||||
}
|
||||
|
||||
.article-share a:hover {
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
}
|
||||
|
||||
@@ -1413,7 +1414,7 @@ img {
|
||||
|
||||
.article-toc li::before {
|
||||
content: counter(toc-counter) ". ";
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@@ -1425,7 +1426,7 @@ img {
|
||||
}
|
||||
|
||||
.article-toc a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
@@ -1489,7 +1490,7 @@ img {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 5px 10px;
|
||||
border-radius: 4px;
|
||||
@@ -1504,7 +1505,7 @@ img {
|
||||
}
|
||||
|
||||
.article-content pre:hover {
|
||||
border-color: #148a72;
|
||||
border-color: #148069;
|
||||
box-shadow: 0 2px 8px rgba(23, 158, 131, 0.1);
|
||||
}
|
||||
|
||||
@@ -1541,7 +1542,7 @@ img {
|
||||
}
|
||||
|
||||
.article-content a {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
text-decoration: underline;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
@@ -1826,6 +1827,12 @@ img.loaded {
|
||||
transition: left 0.5s;
|
||||
}
|
||||
|
||||
.btn:not(.btn-primary):not(.btn-secondary):not(.cta-btn):hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn:hover::before {
|
||||
left: 100%;
|
||||
}
|
||||
@@ -1942,7 +1949,7 @@ a:focus-visible {
|
||||
position: absolute;
|
||||
top: -40px;
|
||||
left: 6px;
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 8px;
|
||||
border-radius: 4px;
|
||||
@@ -1985,7 +1992,7 @@ a:focus-visible {
|
||||
.form-group input:focus + label,
|
||||
.form-group select:focus + label,
|
||||
.form-group textarea:focus + label {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
/* Status indicators */
|
||||
@@ -2080,7 +2087,7 @@ a:focus-visible {
|
||||
}
|
||||
|
||||
.breadcrumb a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
@@ -2291,7 +2298,7 @@ a:focus-visible {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -2375,7 +2382,7 @@ a:focus-visible {
|
||||
}
|
||||
|
||||
.pricing-card.featured {
|
||||
border-color: #148a72;
|
||||
border-color: #148069;
|
||||
transform: scale(1.05);
|
||||
box-shadow: 0 8px 40px rgba(23, 158, 131, 0.15);
|
||||
}
|
||||
@@ -2386,7 +2393,7 @@ a:focus-visible {
|
||||
top: -12px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 8px 20px;
|
||||
border-radius: 20px;
|
||||
@@ -2404,7 +2411,7 @@ a:focus-visible {
|
||||
.pricing-card .price {
|
||||
font-size: 3rem;
|
||||
font-weight: 700;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
margin-bottom: 30px;
|
||||
line-height: 1;
|
||||
}
|
||||
@@ -2585,7 +2592,7 @@ a:focus-visible {
|
||||
|
||||
.faq-question[aria-expanded="true"],
|
||||
.faq-question.active {
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
}
|
||||
|
||||
@@ -2816,7 +2823,7 @@ a:focus-visible {
|
||||
.result-number {
|
||||
font-size: 2rem;
|
||||
font-weight: 700;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
@@ -2918,7 +2925,7 @@ a:focus-visible {
|
||||
.industry-stat .stat-number {
|
||||
font-size: 2.5rem;
|
||||
font-weight: 700;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
@@ -2993,11 +3000,11 @@ aside.related-articles {
|
||||
|
||||
.related-card h3 a:hover,
|
||||
.related-card h4 a:hover {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
}
|
||||
|
||||
.related-card .category {
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 4px 12px;
|
||||
border-radius: 20px;
|
||||
@@ -3019,7 +3026,7 @@ aside.related-articles {
|
||||
}
|
||||
|
||||
.related-card .read-time {
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -3059,8 +3066,9 @@ aside.related-articles {
|
||||
|
||||
.btn:visited,
|
||||
.btn:link,
|
||||
.btn:active {
|
||||
color: inherit;
|
||||
.btn:active,
|
||||
.btn:hover {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -3149,7 +3157,7 @@ aside.related-articles {
|
||||
top: -10px;
|
||||
left: 30px;
|
||||
font-size: 4rem;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-family: serif;
|
||||
line-height: 1;
|
||||
}
|
||||
@@ -3559,7 +3567,7 @@ aside.related-articles {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
color: #148a72;
|
||||
color: #148069;
|
||||
font-weight: bold;
|
||||
font-size: 1rem;
|
||||
}
|
||||
@@ -3567,7 +3575,7 @@ aside.related-articles {
|
||||
/* Technology badges/tags styling */
|
||||
.tech-tag {
|
||||
display: inline-block;
|
||||
background: #179e83;
|
||||
background: #148069;
|
||||
color: white;
|
||||
padding: 6px 12px;
|
||||
border-radius: 20px;
|
||||
@@ -4147,7 +4155,7 @@ main > .project-types-hero:first-child {
|
||||
}
|
||||
.trust-signals-hero .trust-heading {
|
||||
font-size: 0.95rem;
|
||||
color: #6c757d;
|
||||
color: #5c6370;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
margin-bottom: 1.5rem;
|
||||
@@ -4224,7 +4232,7 @@ main > .project-types-hero:first-child {
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
.optional {
|
||||
color: #6c757d;
|
||||
color: #5c6370;
|
||||
font-weight: normal;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
@@ -4506,3 +4514,13 @@ body { font-size: 17px; }
|
||||
}
|
||||
|
||||
/* ===== END VISUAL FIXES 2026-02-11 ===== */
|
||||
|
||||
/* Fix: constrain author-bio and article-footer outside .container (Feb 2026) */
|
||||
.blog-article .author-bio,
|
||||
.blog-article .article-cta,
|
||||
.blog-article .related-articles {
|
||||
max-width: 1200px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user