diff --git a/assets/images/hero-default.png b/assets/images/hero-default.png new file mode 100644 index 0000000..7ea821c Binary files /dev/null and b/assets/images/hero-default.png differ diff --git a/front-page.php b/front-page.php index 758d9c5..aa15241 100644 --- a/front-page.php +++ b/front-page.php @@ -3,9 +3,12 @@ * The front page template file. */ -get_header(); ?> +get_header(); -
+$hero_bg = get_theme_mod( 'hero_background_image', get_template_directory_uri() . '/assets/images/hero-default.png' ); +?> + +

diff --git a/functions.php b/functions.php index 8876ca6..56c6c1d 100644 --- a/functions.php +++ b/functions.php @@ -81,6 +81,17 @@ function wisdom1_customize_register( $wp_customize ) { 'section' => 'wisdom1_hero_section', 'type' => 'text', ) ); + + // Hero Background Image Setting + $wp_customize->add_setting( 'hero_background_image', array( + 'default' => get_template_directory_uri() . '/assets/images/hero-default.png', + 'sanitize_callback' => 'esc_url_raw', + ) ); + $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'hero_background_image', array( + 'label' => __( 'Hero Background Image', 'wisdom1' ), + 'section' => 'wisdom1_hero_section', + 'settings' => 'hero_background_image', + ) ) ); } add_action( 'customize_register', 'wisdom1_customize_register' ); diff --git a/style.css b/style.css index b163dc5..2e4a246 100644 --- a/style.css +++ b/style.css @@ -1,11 +1,15 @@ /* Theme Name: Wisdom1 Description: A modern-classic Christian blog theme for "Wisdom for the Kingdom". -Version: 1.2.1 +Version: 1.2.2 Text Domain: wisdom1 */ /* --- 1. Base Reset & Typography --- */ +* { + box-sizing: border-box; +} + body { margin: 0; background-color: var(--wp--preset--color--base); @@ -14,6 +18,7 @@ body { font-size: var(--wp--preset--font-size--body); line-height: 1.6; -webkit-font-smoothing: antialiased; + overflow-x: hidden; } .site-container { @@ -22,10 +27,20 @@ body { padding: 0 var(--wp--preset--spacing--50); } +img { + max-width: 100%; + height: auto; + display: block; +} + /* --- 2. Header & Navigation --- */ .site-header { padding: var(--wp--preset--spacing--30) 0; background-color: var(--wp--preset--color--base); + position: sticky; + top: 0; + z-index: 1000; + border-bottom: 1px solid var(--wp--preset--color--border); } .header-container { @@ -52,6 +67,7 @@ body { border: 2px solid var(--wp--preset--color--primary); width: 40px; height: 40px; + flex-shrink: 0; display: flex; align-items: center; justify-content: center; @@ -71,16 +87,19 @@ body { list-style: none; margin: 0; padding: 0; + flex-wrap: wrap; + justify-content: center; } .main-navigation a { font-family: var(--wp--preset--font-family--body-font); - font-size: 14px; + font-size: 13px; font-weight: 700; text-transform: uppercase; color: var(--wp--preset--color--primary); text-decoration: none; transition: color 0.3s ease; + white-space: nowrap; } .main-navigation a:hover { @@ -89,23 +108,42 @@ body { /* --- 3. Hero Section (Landing Page) --- */ .hero-section { - height: 80vh; + min-height: 80vh; display: flex; align-items: center; justify-content: center; text-align: center; background-color: var(--wp--preset--color--base); + padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50); + position: relative; +} + +.hero-section::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(244, 241, 234, 0.6); /* Antique Parchment with transparency */ + z-index: 1; +} + +.hero-content { + position: relative; + z-index: 2; } .hero-headline { font-family: var(--wp--preset--font-family--header-font); - font-size: var(--wp--preset--font-size--heading); + font-size: clamp(2.5rem, 8vw, var(--wp--preset--font-size--heading)); margin-bottom: var(--wp--preset--spacing--30); color: var(--wp--preset--color--primary); + line-height: 1.1; } .hero-subheadline { - font-size: var(--wp--preset--font-size--subheading); + font-size: clamp(1.125rem, 4vw, var(--wp--preset--font-size--subheading)); margin-bottom: var(--wp--preset--spacing--50); max-width: 600px; margin-left: auto; @@ -134,32 +172,35 @@ body { .category-header { background-color: var(--wp--preset--color--primary); color: white; - padding: var(--wp--preset--spacing--70) 0; + padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50); text-align: center; - margin-bottom: var(--wp--preset--spacing--70); } .category-title { font-family: var(--wp--preset--font-family--header-font); - font-size: var(--wp--preset--font-size--heading); + font-size: clamp(2rem, 6vw, var(--wp--preset--font-size--heading)); margin: 0; } .category-description { - font-size: var(--wp--preset--font-size--subheading); + font-size: clamp(1rem, 3vw, var(--wp--preset--font-size--subheading)); margin-top: 20px; opacity: 0.8; + max-width: 800px; + margin-left: auto; + margin-right: auto; } /* --- 5. Insights Grid --- */ .section-header { text-align: center; margin: var(--wp--preset--spacing--70) 0; + padding: 0 var(--wp--preset--spacing--50); } .section-title { font-family: var(--wp--preset--font-family--header-font); - font-size: 36px; + font-size: clamp(1.75rem, 5vw, 36px); margin-bottom: 10px; } @@ -170,7 +211,7 @@ body { .insights-grid { display: grid; - grid-template-columns: repeat(3, 1fr); + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--wp--preset--spacing--50); margin-bottom: var(--wp--preset--spacing--90); } @@ -180,18 +221,19 @@ body { padding: var(--wp--preset--spacing--50); border: 1px solid var(--wp--preset--color--border); transition: border-color 0.3s ease; + display: flex; + flex-direction: column; } .insight-card:hover { border-color: var(--wp--preset--color--hover); } -.insight-card .entry-title a { - color: var(--wp--preset--color--primary); - text-decoration: none; - font-family: var(--wp--preset--font-family--header-font); - font-size: 24px; - line-height: 1.2; +.insight-card .post-thumbnail img { + width: 100%; + aspect-ratio: 16 / 9; + object-fit: cover; + margin-bottom: 20px; } .insight-card .entry-title a:hover { @@ -220,18 +262,20 @@ body { .reading-container { max-width: 680px; margin: 0 auto; - font-size: 20px; + font-size: clamp(1.125rem, 4vw, 20px); line-height: 1.8; + padding: 0 var(--wp--preset--spacing--50); } .single-entry-header { text-align: center; margin-bottom: var(--wp--preset--spacing--70); + padding: 0 var(--wp--preset--spacing--50); } .single-title { font-family: var(--wp--preset--font-family--header-font); - font-size: 56px; + font-size: clamp(2rem, 7vw, 56px); margin-top: 10px; line-height: 1.1; } @@ -239,29 +283,84 @@ body { .single-post-thumbnail { margin-bottom: var(--wp--preset--spacing--70); text-align: center; + width: 100%; } .single-post-thumbnail img { - max-width: 100%; + width: 100%; height: auto; + aspect-ratio: 21 / 9; /* Cinematic ultra-wide for detail view */ + object-fit: cover; + border-bottom: 1px solid var(--wp--preset--color--border); +} + +/* --- Content Images & Captions --- */ +.entry-content img { + height: auto; + margin-bottom: var(--wp--preset--spacing--30); + border: 1px solid var(--wp--preset--color--border); + padding: 5px; + background: #FFFFFF; +} + +.wp-block-image { + margin-bottom: var(--wp--preset--spacing--50); +} + +figcaption { + font-size: 13px; + text-align: center; + color: var(--wp--preset--color--accent); + font-style: italic; + margin-top: 10px; + font-family: var(--wp--preset--font-family--body-font); +} + +/* Alignments */ +.alignwide { + margin-left: -10%; + margin-right: -10%; + max-width: 120%; +} + +.alignfull { + margin-left: calc(50% - 50vw); + margin-right: calc(50% - 50vw); + width: 100vw; + max-width: 100vw; +} + +@media (max-width: 768px) { + .alignwide, .alignfull { + margin-left: 0; + margin-right: 0; + width: 100%; + } } .entry-date { margin-left: 10px; opacity: 0.5; - font-size: 14px; + font-size: 12px; text-transform: uppercase; } .post-navigation { border-top: 1px solid var(--wp--preset--color--border); margin-top: var(--wp--preset--spacing--90); - padding: var(--wp--preset--spacing--70) 0; + padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50); } .nav-links { display: flex; justify-content: space-between; + gap: 20px; + flex-wrap: wrap; +} + +.nav-links div { + flex: 1; + min-width: 200px; } .nav-links a { @@ -274,7 +373,7 @@ body { .newsletter-strip { background-color: var(--wp--preset--color--primary); color: white; - padding: var(--wp--preset--spacing--70) 0; + padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50); } .newsletter-content { @@ -289,7 +388,7 @@ body { .newsletter-text { font-family: var(--wp--preset--font-family--header-font); - font-size: 24px; + font-size: clamp(1.25rem, 4vw, 24px); } .newsletter-form { @@ -306,6 +405,8 @@ body { color: white; flex-grow: 1; padding: 10px; + font-size: 16px; + min-width: 0; } .newsletter-submit { @@ -313,37 +414,60 @@ body { border: none; color: var(--wp--preset--color--accent); cursor: pointer; + flex-shrink: 0; } /* --- 8. Footer --- */ .site-footer { - padding: var(--wp--preset--spacing--50) 0; + padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50); text-align: center; font-size: 14px; background-color: var(--wp--preset--color--base); } -/* --- 9. Responsive --- */ -@media (max-width: 900px) { - .insights-grid { grid-template-columns: repeat(2, 1fr); } +/* --- 9. Additional Responsiveness --- */ +@media (max-width: 768px) { + .header-container { + flex-direction: column; + gap: 20px; + } + + .main-navigation ul { + gap: 20px; + } + + .site-container { + padding: 0 var(--wp--preset--spacing--30); + } } -@media (max-width: 600px) { - .insights-grid { grid-template-columns: 1fr; } - .hero-headline { font-size: 32px; } - .header-container { flex-direction: column; gap: 20px; } +@media (max-width: 480px) { + .insights-grid { + grid-template-columns: 1fr; + } + + .cta-button { + width: 100%; + text-align: center; + } + + .comment-meta { + flex-direction: column; + align-items: flex-start; + gap: 5px; + } } /* --- 10. Comments Section --- */ .comments-area { margin-top: var(--wp--preset--spacing--90); border-top: 1px solid var(--wp--preset--color--border); - padding-top: var(--wp--preset--spacing--70); + padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50); } .comments-title, .comment-reply-title { font-family: var(--wp--preset--font-family--header-font); - font-size: 32px; + font-size: clamp(1.5rem, 5vw, 32px); margin-bottom: var(--wp--preset--spacing--50); } @@ -376,7 +500,7 @@ body { } .comment-metadata { - font-size: 12px; + font-size: 11px; opacity: 0.5; text-transform: uppercase; } @@ -416,10 +540,11 @@ body { #commentform input[type="email"], #commentform textarea { width: 100%; - padding: 10px; + padding: 12px; border: 1px solid var(--wp--preset--color--border); background: #FFFFFF; font-family: var(--wp--preset--font-family--body-font); + font-size: 16px; } #commentform textarea { @@ -438,6 +563,12 @@ body { transition: background 0.3s ease; } +@media (max-width: 480px) { + #commentform .submit { + width: 100%; + } +} + #commentform .submit:hover { background-color: var(--wp--preset--color--accent); }