/* Theme Name: Ayan Modern Description: A modern, clean theme for personal website and blog with focus on readability and professional appearance Version: 1.2 Author: Ayan Ozturk Copyright: 2025 Ayan Ozturk Tags: blog, custom-logo, custom-menu, featured-images, responsive-layout, right-sidebar, threaded-comments, translation-ready License: MIT License License URI: https://opensource.org/licenses/MIT Text Domain: ayan-modern Tested up to: 6.6 Requires PHP: 7.4 */ /* CSS Variables for consistent theming */ :root { --primary-color: #2563eb; --primary-dark: #1d4ed8; --secondary-color: #64748b; --accent-color: #f59e0b; --text-primary: #1e293b; --text-secondary: #64748b; --text-muted: #94a3b8; --bg-primary: #ffffff; --bg-secondary: #f8fafc; --bg-muted: #f1f5f9; --border-color: #e2e8f0; --border-light: #f1f5f9; --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; --font-mono: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New', monospace; --max-width: 1200px; --header-height: 80px; } /* Dark mode support */ @media (prefers-color-scheme: dark) { :root { --primary-color: #3b82f6; --primary-dark: #2563eb; --text-primary: #f1f5f9; --text-secondary: #cbd5e1; --text-muted: #94a3b8; --bg-primary: #0f172a; --bg-secondary: #1e293b; --bg-muted: #334155; --border-color: #334155; --border-light: #475569; } } /* Reset and base styles */ * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; font-size: 16px; } body { font-family: var(--font-sans); line-height: 1.7; color: var(--text-primary); background-color: var(--bg-primary); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.3; margin-bottom: 1rem; color: var(--text-primary); } h1 { font-size: 2.5rem; } h2 { font-size: 2rem; } h3 { font-size: 1.5rem; } h4 { font-size: 1.25rem; } h5 { font-size: 1.125rem; } h6 { font-size: 1rem; } p { margin-bottom: 1.5rem; color: var(--text-secondary); } a { color: var(--primary-color); text-decoration: none; transition: color 0.2s ease; } a:hover { color: var(--primary-dark); } /* Layout */ .container { max-width: var(--max-width); margin: 0 auto; padding: 0 1.5rem; } .site { min-height: 100vh; display: flex; flex-direction: column; } /* Header */ .site-header { background: var(--bg-primary); border-bottom: 1px solid var(--border-color); position: sticky; top: 0; z-index: 1100; backdrop-filter: blur(10px); background-color: rgba(255, 255, 255, 0.95); } @media (prefers-color-scheme: dark) { .site-header { background-color: rgba(15, 23, 42, 0.95); } } .header-content { display: flex; align-items: center; justify-content: space-between; height: var(--header-height); position: relative; } /* Header actions: search + menu toggle */ .header-actions { display: flex; align-items: center; gap: 0.75rem; } .header-actions .search-form { display: none; } @media (min-width: 1025px) { .header-actions .search-form { display: flex; align-items: center; gap: 0.5rem; min-width: 240px; } .header-actions .search-field { padding: 0.5rem 0.75rem; height: 40px; } .header-actions .search-submit { height: 40px; } } @media (max-width: 1024px) { .header-content { display: flex; align-items: center; justify-content: space-between; gap: 1rem; } .site-branding { flex: 1; } .menu-toggle { margin-left: auto; } .main-navigation { /* Turn into fullscreen overlay on mobile */ position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100%; } } /* Desktop navigation positioning */ @media (min-width: 1025px) { .header-content { display: flex; align-items: center; justify-content: space-between; gap: 2rem; } .site-branding { flex: 0 0 auto; } .menu-toggle { display: none !important; } .main-navigation { position: static !important; top: auto !important; left: auto !important; right: auto !important; width: auto !important; transform: none !important; opacity: 1 !important; visibility: visible !important; max-height: none !important; pointer-events: auto !important; background: none !important; border: none !important; padding: 0 !important; box-shadow: none !important; margin: 0 !important; margin-left: auto !important; } .main-navigation ul { display: flex !important; flex-direction: row !important; gap: 2rem !important; margin: 0 !important; padding: 0 !important; list-style: none !important; align-items: center !important; } .main-navigation li { margin: 0 !important; padding: 0 !important; } .main-navigation a { display: block !important; padding: 0.5rem 0 !important; margin: 0 !important; position: relative !important; color: var(--text-secondary) !important; font-weight: 500 !important; transition: color 0.2s ease !important; } .main-navigation a:hover, .main-navigation .current-menu-item a { color: var(--primary-color) !important; } .main-navigation a::after { content: '' !important; position: absolute !important; bottom: 0 !important; left: 0 !important; width: 0 !important; height: 2px !important; background: var(--primary-color) !important; transition: width 0.2s ease !important; } .main-navigation a:hover::after, .main-navigation .current-menu-item a::after { width: 100% !important; } } /* Ensure nav sits relative to header for absolute dropdown positioning */ .site-header .main-navigation { position: relative; } .site-branding { display: flex; align-items: center; gap: 1rem; } .site-title { font-size: 1.5rem; font-weight: 700; color: var(--text-primary); text-decoration: none; } .site-title:hover { color: var(--primary-color); } .site-description { color: var(--text-muted); font-size: 0.875rem; display: none; } @media (min-width: 768px) { .site-description { display: block; } } /* Navigation */ .main-navigation ul { display: flex; list-style: none; gap: 2rem; align-items: center; } .main-navigation a { color: var(--text-secondary); font-weight: 500; padding: 0.5rem 0; position: relative; transition: color 0.2s ease; } .main-navigation a:hover, .main-navigation .current-menu-item a { color: var(--primary-color); } .main-navigation a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: var(--primary-color); transition: width 0.2s ease; } .main-navigation a:hover::after, .main-navigation .current-menu-item a::after { width: 100%; } /* Mobile menu */ .menu-toggle { display: none; background: none; border: none; font-size: 1.5rem; color: var(--text-primary); cursor: pointer; padding: 0.5rem; border-radius: var(--radius-sm); transition: background-color 0.2s ease; min-width: 44px; min-height: 44px; } .menu-toggle:hover { background: var(--bg-muted); } /* Focus-visible states for accessibility */ .menu-toggle:focus-visible, .main-navigation a:focus-visible, .header-actions .search-field:focus-visible, .header-actions .search-submit:focus-visible { outline: 3px solid rgba(37, 99, 235, 0.35); outline-offset: 2px; border-radius: var(--radius-sm); } @media (max-width: 1024px) { .menu-toggle { display: block; position: relative; z-index: 1100; /* above dropdown */ } .main-navigation { background: var(--bg-primary); padding: calc(var(--header-height) + 1rem) 1.5rem 2rem; margin: 0; transform: translateY(-100%); opacity: 0; visibility: hidden; transition: transform 0.35s ease, opacity 0.35s ease, visibility 0.35s ease; z-index: 1000; box-shadow: none; overflow-y: auto; pointer-events: none; /* don't block clicks when closed */ } .main-navigation.active { transform: translateY(0); opacity: 1; visibility: visible; pointer-events: auto; } .main-navigation ul { display: flex; flex-direction: column; gap: 0; margin: 0; padding: 0; list-style: none; align-items: stretch; } .main-navigation li { margin: 0; padding: 0; } .main-navigation a { display: block; padding: 0.875rem 0.5rem; margin: 0; text-align: left; font-size: 1.25rem; } .main-navigation a::after { display: none; } } /* Prevent background scroll when mobile menu is open */ body.nav-open { overflow: hidden; } /* Skip link visibility */ .skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; padding: 0.5rem 0.75rem; background: var(--primary-color); color: #fff; z-index: 1200; left: 1rem; top: 1rem; } /* Main content */ .site-main { flex: 1; padding: 3rem 0; } .content-area { display: grid; grid-template-columns: 1fr; gap: 3rem; } @media (min-width: 1024px) { .content-area { grid-template-columns: 2fr 1fr; } } /* Posts */ .post { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 2rem; margin-bottom: 2rem; transition: transform 0.2s ease, box-shadow 0.2s ease; } .post:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); } .post-header { margin-bottom: 1.5rem; } .post-title { font-size: 1.75rem; margin-bottom: 0.5rem; } .post-title a { color: var(--text-primary); } .post-title a:hover { color: var(--primary-color); } .post-meta { color: var(--text-muted); font-size: 0.875rem; display: flex; gap: 1rem; flex-wrap: wrap; } .post-content { color: var(--text-secondary); line-height: 1.8; } .post-content h2, .post-content h3, .post-content h4 { margin-top: 2rem; margin-bottom: 1rem; } .post-content p { margin-bottom: 1.5rem; } .post-content ul, .post-content ol { margin-bottom: 1.5rem; padding-left: 1.5rem; } .post-content li { margin-bottom: 0.5rem; } .post-content blockquote { border-left: 4px solid var(--primary-color); padding-left: 1.5rem; margin: 2rem 0; font-style: italic; color: var(--text-secondary); } .post-content code { background: var(--bg-muted); padding: 0.125rem 0.25rem; border-radius: var(--radius-sm); font-family: var(--font-mono); font-size: 0.875rem; } .post-content pre { background: var(--bg-muted); padding: 1.5rem; border-radius: var(--radius-md); overflow-x: auto; margin: 1.5rem 0; } .post-content pre code { background: none; padding: 0; } /* Sidebar */ .sidebar { background: var(--bg-secondary); border-radius: var(--radius-lg); padding: 2rem; height: fit-content; } .widget { margin-bottom: 2rem; } .widget:last-child { margin-bottom: 0; } .widget-title { font-size: 1.25rem; margin-bottom: 1rem; color: var(--text-primary); border-bottom: 2px solid var(--primary-color); padding-bottom: 0.5rem; } .widget ul { list-style: none; } .widget li { margin-bottom: 0.75rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-light); } .widget li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .widget a { color: var(--text-secondary); transition: color 0.2s ease; } .widget a:hover { color: var(--primary-color); } /* Footer */ .site-footer { background: var(--bg-secondary); border-top: 1px solid var(--border-color); padding: 1.5rem 0; margin-top: auto; } .footer-content { display: flex; flex-direction: column; gap: 1rem; } .footer-text { color: var(--text-muted); font-size: 0.875rem; margin: 0; } .social-links { display: flex; gap: 0.75rem; } .social-links a { color: var(--text-muted); transition: color 0.2s ease; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--bg-muted); } .social-links a:hover { color: var(--primary-color); background: var(--primary-color); color: white; } /* Sidebar social links - more compact */ .widget_social .social-links { flex-direction: column; gap: 0.5rem; } .widget_social .social-links a { width: auto; height: auto; border-radius: var(--radius-sm); padding: 0.5rem 0.75rem; justify-content: flex-start; } /* Pagination */ .pagination { display: flex; justify-content: center; gap: 0.5rem; margin-top: 3rem; } .pagination .page-numbers { display: inline-block; padding: 0.75rem 1rem; background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-md); color: var(--text-secondary); text-decoration: none; transition: all 0.2s ease; } .pagination .page-numbers:hover, .pagination .current { background: var(--primary-color); color: white; border-color: var(--primary-color); } /* Comments pagination */ .comments-pagination { margin-top: 1.5rem; } /* Search form */ .search-form { display: flex; gap: 0.5rem; } .search-field { flex: 1; padding: 0.75rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--bg-primary); color: var(--text-primary); font-family: var(--font-sans); } .search-field:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); } .search-submit { padding: 0.75rem 1.5rem; background: var(--primary-color); color: white; border: none; border-radius: var(--radius-md); cursor: pointer; font-weight: 500; transition: background-color 0.2s ease; } .search-submit:hover { background: var(--primary-dark); } /* Responsive images */ img { max-width: 100%; height: auto; border-radius: var(--radius-md); } /* Utility classes */ .text-center { text-align: center; } .text-left { text-align: left; } .text-right { text-align: right; } .mb-1 { margin-bottom: 0.25rem; } .mb-2 { margin-bottom: 0.5rem; } .mb-3 { margin-bottom: 0.75rem; } .mb-4 { margin-bottom: 1rem; } .mb-5 { margin-bottom: 1.25rem; } .mb-6 { margin-bottom: 1.5rem; } .mt-1 { margin-top: 0.25rem; } .mt-2 { margin-top: 0.5rem; } .mt-3 { margin-top: 0.75rem; } .mt-4 { margin-top: 1rem; } .mt-5 { margin-top: 1.25rem; } .mt-6 { margin-top: 1.5rem; } /* Welcome Banner (Optional) */ .welcome-banner { background: var(--bg-secondary); border-bottom: 1px solid var(--border-color); padding: 1rem 0; } .welcome-text { text-align: center; color: var(--text-secondary); font-size: 1rem; margin: 0; font-style: italic; } /* Button styles (kept for other uses) */ .btn { display: inline-block; padding: 0.75rem 1.5rem; border-radius: var(--radius-md); text-decoration: none; font-weight: 500; transition: all 0.2s ease; border: none; cursor: pointer; } .btn-primary { background: var(--primary-color); color: white; } .btn-primary:hover { background: var(--primary-dark); transform: translateY(-1px); } .btn-secondary { background: var(--bg-secondary); color: var(--text-primary); border: 1px solid var(--border-color); } .btn-secondary:hover { background: var(--bg-muted); border-color: var(--primary-color); } /* Featured Posts */ .featured-posts { margin-bottom: 3rem; } .section-title { font-size: 2rem; margin-bottom: 2rem; color: var(--text-primary); } .featured-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } .featured-post { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease; } .featured-post:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); } .featured-image img { width: 100%; height: 200px; object-fit: cover; } .featured-content { padding: 1.5rem; } /* Posts Grid */ .posts-grid { display: grid; gap: 2rem; } .post-card { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease; } .post-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); } .post-image img { width: 100%; height: 200px; object-fit: cover; } /* Square grid variant for posts */ .posts-grid--square { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); } .post-card--featured { grid-column: span 2; display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; } @media (max-width: 900px) { .post-card--featured { grid-template-columns: 1fr; } } .post-image--square { aspect-ratio: 1 / 1; overflow: hidden; } .post-image--square img { width: 100%; height: 100%; object-fit: cover; display: block; } .post-content { padding: 1.5rem; } .post-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border-light); } .read-more { color: var(--primary-color); font-weight: 500; text-decoration: none; } .read-more:hover { text-decoration: underline; } /* Single Post Styles */ .single-post { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 2rem; margin-bottom: 2rem; } .post-author { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0; padding: 1rem; background: var(--bg-secondary); border-radius: var(--radius-md); } .author-avatar img { border-radius: 50%; } .author-info { display: flex; flex-direction: column; } .author-name { font-weight: 600; color: var(--text-primary); } .author-bio { color: var(--text-muted); font-size: 0.875rem; } .post-featured-image img { width: 100%; height: auto; border-radius: var(--radius-md); margin: 1.5rem 0; } .post-tags { margin: 2rem 0; } .tag-list { display: flex; gap: 0.5rem; flex-wrap: wrap; } .tag-list a { background: var(--bg-muted); color: var(--text-secondary); padding: 0.25rem 0.75rem; border-radius: var(--radius-sm); font-size: 0.875rem; text-decoration: none; } .tag-list a:hover { background: var(--primary-color); color: white; } .post-share { margin: 2rem 0; } .share-buttons { display: flex; gap: 0.5rem; flex-wrap: wrap; } .share-button { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; background: var(--bg-secondary); color: var(--text-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-md); text-decoration: none; font-size: 0.875rem; transition: all 0.2s ease; } .share-button:hover { background: var(--primary-color); color: white; border-color: var(--primary-color); } /* Author Bio Section */ .author-bio-section { margin: 3rem 0; } .author-bio-card { display: flex; gap: 1.5rem; background: var(--bg-secondary); padding: 2rem; border-radius: var(--radius-lg); } .author-avatar-large img { border-radius: 50%; } .author-bio-content h3 { margin-bottom: 0.5rem; } .author-links { margin-top: 1rem; } .author-links a { margin-right: 1rem; color: var(--primary-color); text-decoration: none; } .author-links a:hover { text-decoration: underline; } /* Related Posts */ .related-posts { margin: 3rem 0; } .related-posts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; margin-top: 1.5rem; } .related-post { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-md); overflow: hidden; transition: transform 0.2s ease; } .related-post:hover { transform: translateY(-2px); } .related-post-image img { width: 100%; height: 150px; object-fit: cover; } .related-post-content { padding: 1rem; } .related-post-title { font-size: 1rem; margin-bottom: 0.5rem; } .related-post-title a { color: var(--text-primary); text-decoration: none; } .related-post-title a:hover { color: var(--primary-color); } /* Post Navigation */ .post-navigation { margin: 3rem 0; padding: 2rem; background: var(--bg-secondary); border-radius: var(--radius-lg); } .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; } .nav-previous, .nav-next { display: flex; flex-direction: column; } .nav-previous a, .nav-next a { color: var(--text-primary); text-decoration: none; font-weight: 500; } .nav-previous a:hover, .nav-next a:hover { color: var(--primary-color); } /* Footer Styles */ .footer-main { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; flex-wrap: wrap; gap: 1rem; } .footer-title { color: var(--text-primary); margin: 0; font-size: 1.125rem; } .footer-title a { color: var(--text-primary); text-decoration: none; } .footer-title a:hover { color: var(--primary-color); } .footer-social h4 { color: var(--text-primary); margin: 0 0 0.5rem 0; font-size: 0.875rem; font-weight: 600; } .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 1rem; border-top: 1px solid var(--border-color); flex-wrap: wrap; gap: 1rem; } .footer-links { display: flex; gap: 1rem; } .footer-links a { color: var(--text-muted); text-decoration: none; font-size: 0.875rem; } .footer-links a:hover { color: var(--primary-color); } /* Sidebar Widgets */ .widget_about .about-content { color: var(--text-secondary); line-height: 1.6; } .widget_recent_entries li { margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border-light); } .widget_recent_entries li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .widget_recent_entries a { color: var(--text-primary); text-decoration: none; font-weight: 500; display: block; margin-bottom: 0.25rem; } .widget_recent_entries a:hover { color: var(--primary-color); } .widget_recent_entries .post-date { color: var(--text-muted); font-size: 0.875rem; } .widget_categories li { display: flex; justify-content: space-between; align-items: center; } .category-count { color: var(--text-muted); font-size: 0.875rem; } .tag-cloud { display: flex; flex-wrap: wrap; gap: 0.5rem; } .tag-link { background: var(--bg-muted); color: var(--text-secondary); padding: 0.25rem 0.75rem; border-radius: var(--radius-sm); text-decoration: none; transition: all 0.2s ease; } .tag-link:hover { background: var(--primary-color); color: white; } .newsletter-content p { color: var(--text-secondary); margin-bottom: 1rem; } .newsletter-form { display: flex; flex-direction: column; gap: 0.5rem; } .newsletter-form input[type="email"] { padding: 0.75rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--bg-primary); color: var(--text-primary); } .newsletter-form input[type="email"]:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); } .newsletter-submit { padding: 0.75rem; background: var(--primary-color); color: white; border: none; border-radius: var(--radius-md); cursor: pointer; font-weight: 500; transition: background-color 0.2s ease; } .newsletter-submit:hover { background: var(--primary-dark); } .newsletter-submit:disabled { opacity: 0.7; cursor: not-allowed; } /* Interactive Elements */ .back-to-top { position: fixed; bottom: 2rem; right: 2rem; background: var(--primary-color); color: white; border: none; border-radius: 50%; width: 50px; height: 50px; cursor: pointer; opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 1000; display: flex; align-items: center; justify-content: center; } .back-to-top.visible { opacity: 1; visibility: visible; } .back-to-top:hover { background: var(--primary-dark); transform: translateY(-2px); } .reading-progress { position: fixed; top: 0; left: 0; width: 0; height: 3px; background: var(--primary-color); z-index: 1001; transition: width 0.1s ease; } /* Comments */ .comments-area, .comment-respond { background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 2rem; margin: 2.5rem 0; } .comments-title, .comment-reply-title { margin-bottom: 1rem; color: var(--text-primary); } .comment-form { display: grid; gap: 1rem; } .comment-form p { margin: 0; } .comment-form .comment-notes, .comment-form .logged-in-as, .comment-form .form-allowed-tags { color: var(--text-muted); font-size: 0.9375rem; } .comment-form label { display: block; margin-bottom: 0.5rem; color: var(--text-primary); font-weight: 600; } .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form input[type="password"], .comment-form textarea { width: 100%; padding: 0.75rem 0.875rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--bg-primary); color: var(--text-primary); font-family: var(--font-sans); } .comment-form textarea { min-height: 200px; resize: vertical; } .comment-form input[type="text"]:focus, .comment-form input[type="email"]:focus, .comment-form input[type="url"]:focus, .comment-form input[type="password"]:focus, .comment-form textarea:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12); } .comment-form .required { color: var(--accent-color); } .comment-form-cookies-consent { display: flex; align-items: center; gap: 0.5rem; color: var(--text-secondary); } .form-submit { margin-top: 0.5rem; } .form-submit .submit { padding: 0.75rem 1.25rem; background: var(--primary-color); color: #fff; border: none; border-radius: var(--radius-md); cursor: pointer; font-weight: 600; transition: background-color 0.2s ease, transform 0.1s ease; } .form-submit .submit:hover { background: var(--primary-dark); } .form-submit .submit:active { transform: translateY(1px); } .comment-list { list-style: none; margin: 2rem 0 0 0; padding: 0; display: grid; gap: 1rem; } .comment-list .comment { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 1.25rem; } .comment-metadata, .comment-author { color: var(--text-muted); } .comment-content { color: var(--text-secondary); margin-top: 0.5rem; } .reply { margin-top: 0.5rem; } .reply a { color: var(--primary-color); text-decoration: none; font-weight: 500; } .reply a:hover { text-decoration: underline; } /* Mobile Menu Icon (three bars -> X) */ .menu-toggle-icon { position: relative; width: 24px; height: 16px; display: inline-block; } .menu-toggle-icon, .menu-toggle-icon::before, .menu-toggle-icon::after { background: none; } .menu-toggle-icon::before, .menu-toggle-icon::after { content: ''; position: absolute; left: 0; right: 0; height: 2px; background: var(--text-primary); border-radius: 2px; transition: transform 0.25s ease, top 0.25s ease, bottom 0.25s ease, opacity 0.2s ease; } .menu-toggle-icon::before { top: 4px; } .menu-toggle-icon::after { bottom: 4px; } /* Middle bar */ .menu-toggle-icon span { position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: var(--text-primary); transform: translateY(-50%); border-radius: 2px; transition: opacity 0.2s ease; } .menu-toggle-icon.active span { opacity: 0; } .menu-toggle-icon.active::before { top: 50%; transform: translateY(-50%) rotate(45deg); } .menu-toggle-icon.active::after { bottom: auto; top: 50%; transform: translateY(-50%) rotate(-45deg); } /* Section Divider */ .section-divider { border: none; height: 1px; background: var(--border-color); margin: 3rem 0; } /* Page Styles */ .page-content { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 2rem; margin-bottom: 2rem; } .page-header { margin-bottom: 2rem; text-align: center; } .page-title { font-size: 2.5rem; color: var(--text-primary); margin-bottom: 1rem; } .page-featured-image img { width: 100%; height: auto; border-radius: var(--radius-md); margin-bottom: 2rem; } /* Search Results */ .search-results { display: grid; gap: 2rem; } .search-result { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 2rem; transition: transform 0.2s ease, box-shadow 0.2s ease; } .search-result:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); } .search-result .entry-title { font-size: 1.5rem; margin-bottom: 0.5rem; } .search-result .entry-title a { color: var(--text-primary); text-decoration: none; } .search-result .entry-title a:hover { color: var(--primary-color); } .search-result .entry-meta { color: var(--text-muted); font-size: 0.875rem; margin-bottom: 1rem; display: flex; gap: 1rem; } .search-result .entry-summary { color: var(--text-secondary); line-height: 1.6; margin-bottom: 1rem; } .search-result .entry-footer { border-top: 1px solid var(--border-light); padding-top: 1rem; } .no-results { text-align: center; padding: 3rem 0; } .no-results h2 { color: var(--text-primary); margin-bottom: 1rem; } .no-results p { color: var(--text-secondary); margin-bottom: 2rem; } .search-form-container { max-width: 500px; margin: 0 auto 2rem; } .suggestions { text-align: left; max-width: 600px; margin: 0 auto; } .suggestions h3 { color: var(--text-primary); margin-bottom: 1rem; } .suggestions ul { list-style: none; padding: 0; } .suggestions li { color: var(--text-secondary); margin-bottom: 0.5rem; padding-left: 1.5rem; position: relative; } .suggestions li::before { content: '•'; color: var(--primary-color); position: absolute; left: 0; } /* Screen Reader Text */ .screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; } /* Responsive Design */ @media (max-width: 768px) { .welcome-text { font-size: 0.875rem; } .featured-grid { grid-template-columns: 1fr; } .related-posts-grid { grid-template-columns: 1fr; } .nav-links { grid-template-columns: 1fr; gap: 1rem; } .footer-main { flex-direction: column; text-align: center; gap: 1.5rem; } .footer-bottom { flex-direction: column; text-align: center; gap: 1rem; } .author-bio-card { flex-direction: column; text-align: center; } .share-buttons { flex-direction: column; } .back-to-top { bottom: 1rem; right: 1rem; } } /* Print styles */ @media print { .site-header, .sidebar, .site-footer, .back-to-top, .reading-progress { display: none; } .site-main { padding: 0; } .post { border: none; padding: 0; margin-bottom: 2rem; } .welcome-banner { background: none; border: none; padding: 0.5rem 0; } .welcome-text { color: black; } }