Fix: remove duplicate author-bio includes, add author images, move inline styles
- Remove author-bio.php and article-footer.php duplicate inclusions from inside related article cards across 17 articles (was rendering 4x per page) - Create /assets/images/authors/ with SVG avatars for all 7 named authors - Move inline <style> block out of author-bio.php into main.css
@@ -4568,3 +4568,112 @@ body { font-size: 17px; }
|
||||
.article-cta .cta-actions { width: 100%; }
|
||||
.article-cta .btn-primary, .article-cta .btn-secondary { text-align: center; flex: 1; }
|
||||
}
|
||||
|
||||
|
||||
/* === Author Bio Component (moved from inline, Feb 2026) ===*/
|
||||
|
||||
.author-bio {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
padding: 24px;
|
||||
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
|
||||
border-radius: 12px;
|
||||
margin: 40px 0;
|
||||
border-left: 4px solid #179e83;
|
||||
}
|
||||
|
||||
.author-avatar img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
border: 3px solid #179e83;
|
||||
}
|
||||
|
||||
.author-info {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.author-header {
|
||||
font-size: 0.85rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
color: #144784;
|
||||
margin: 0 0 8px 0;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.author-name {
|
||||
font-size: 1.25rem;
|
||||
font-weight: 700;
|
||||
color: #1a1a1a;
|
||||
margin: 0 0 4px 0;
|
||||
}
|
||||
|
||||
.author-role {
|
||||
font-size: 0.95rem;
|
||||
color: #666;
|
||||
margin: 0 0 12px 0;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.author-description {
|
||||
font-size: 0.95rem;
|
||||
color: #444;
|
||||
line-height: 1.6;
|
||||
margin: 0 0 16px 0;
|
||||
}
|
||||
|
||||
.author-expertise {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.expertise-label {
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.expertise-tag {
|
||||
font-size: 0.8rem;
|
||||
padding: 4px 10px;
|
||||
background: #fff;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 16px;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.author-social .linkedin-link {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
color: #0077b5;
|
||||
text-decoration: none;
|
||||
font-size: 0.9rem;
|
||||
font-weight: 500;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.author-social .linkedin-link:hover {
|
||||
color: #005885;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.author-bio {
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.author-avatar {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.author-expertise {
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
5
assets/images/authors/david-martinez.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<circle cx="40" cy="40" r="40" fill="#144784"/>
|
||||
<circle cx="40" cy="30" r="14" fill="rgba(255,255,255,0.9)"/>
|
||||
<ellipse cx="40" cy="68" rx="22" ry="18" fill="rgba(255,255,255,0.9)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |
5
assets/images/authors/emma-richardson.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<circle cx="40" cy="40" r="40" fill="#144784"/>
|
||||
<circle cx="40" cy="30" r="14" fill="rgba(255,255,255,0.9)"/>
|
||||
<ellipse cx="40" cy="68" rx="22" ry="18" fill="rgba(255,255,255,0.9)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |
5
assets/images/authors/james-wilson.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<circle cx="40" cy="40" r="40" fill="#144784"/>
|
||||
<circle cx="40" cy="30" r="14" fill="rgba(255,255,255,0.9)"/>
|
||||
<ellipse cx="40" cy="68" rx="22" ry="18" fill="rgba(255,255,255,0.9)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |
5
assets/images/authors/michael-thompson.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<circle cx="40" cy="40" r="40" fill="#144784"/>
|
||||
<circle cx="40" cy="30" r="14" fill="rgba(255,255,255,0.9)"/>
|
||||
<ellipse cx="40" cy="68" rx="22" ry="18" fill="rgba(255,255,255,0.9)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |
5
assets/images/authors/rachel-singh.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<circle cx="40" cy="40" r="40" fill="#144784"/>
|
||||
<circle cx="40" cy="30" r="14" fill="rgba(255,255,255,0.9)"/>
|
||||
<ellipse cx="40" cy="68" rx="22" ry="18" fill="rgba(255,255,255,0.9)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |
5
assets/images/authors/sarah-chen.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<circle cx="40" cy="40" r="40" fill="#144784"/>
|
||||
<circle cx="40" cy="30" r="14" fill="rgba(255,255,255,0.9)"/>
|
||||
<ellipse cx="40" cy="68" rx="22" ry="18" fill="rgba(255,255,255,0.9)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |
5
assets/images/authors/team-avatar.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<circle cx="40" cy="40" r="40" fill="#144784"/>
|
||||
<circle cx="40" cy="30" r="14" fill="rgba(255,255,255,0.9)"/>
|
||||
<ellipse cx="40" cy="68" rx="22" ry="18" fill="rgba(255,255,255,0.9)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |