/*
Theme Name: Step Reveal Custom
Theme URI: https://stepreveal.com
Author: Step Reveal Strategy Team
Description: A minimalist, typography-forward, high-traffic theme optimized for AdSense and Affiliate conversions. Built natively for stepreveal.com.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: stepreveal
*/

:root {
    --color-accent: #CC5500;
    --color-accent-hover: #A34400;
    --color-text: #444444;
    --color-heading: #111111;
    --color-bg: #FFFFFF;
    --color-bg-light: #F5F5F5;
    --color-border: #E0E0E0;
    --color-footer: #1A1A1A;
    --color-alert-bg: rgba(204, 85, 0, 0.08);
    --font-primary: 'Space Grotesk', sans-serif;
    --font-secondary: 'Manrope', sans-serif;
    --max-width: 1200px;
    --border-radius: 4px;
    --spacing-section: 64px;
}

/* Base structural resets compiled from layout guidelines */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--font-secondary); font-size: 16px; line-height: 1.65; color: var(--color-text); background-color: var(--color-bg); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-primary); color: var(--color-heading); font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; }
a { color: inherit; text-decoration: none; transition: all 0.2s ease; }
img { max-width: 100%; height: auto; display: block; border-radius: var(--border-radius); }
input, button { font-family: inherit; font-size: inherit; border-radius: var(--border-radius); }
.container { width: 100%; max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }
.section-title { font-size: 2rem; font-weight: 700; margin-bottom: 32px; letter-spacing: -0.02em; }
.badge { display: inline-block; font-family: var(--font-primary); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; color: var(--color-accent); letter-spacing: 0.05em; margin-bottom: 12px; }
.badge a { color: var(--color-accent); }

/* Monetization / Ad Blocks Styling */
.ad-wrapper { text-align: center; margin: 0 auto; padding: 16px 0; }
.ad-label { font-family: var(--font-primary); font-size: 11px; text-transform: uppercase; color: #999999; letter-spacing: 0.1em; margin-bottom: 8px; display: block; }
.ad-placeholder { background-color: var(--color-bg-light); border: 1px dashed var(--color-border); display: flex; align-items: center; justify-content: center; color: #888888; font-family: var(--font-primary); font-size: 13px; margin: 0 auto; }
.ad-leaderboard-size { width: 100%; max-width: 728px; height: 90px; }
.sidebar-ad-size { width: 300px; height: 250px; }

/* Structural elements styling */
.site-header { background-color: var(--color-bg); border-bottom: 1px solid var(--color-border); position: sticky; top: 0; z-index: 1000; }
.header-container { display: flex; align-items: center; justify-content: space-between; height: 72px; }
.site-branding .site-title { font-size: 1.5rem; font-weight: 700; color: var(--color-heading); letter-spacing: -0.02em; }
.site-branding .site-title span { color: var(--color-accent); }
.main-navigation ul { display: none; list-style: none; }
.main-navigation a { font-family: var(--font-primary); font-weight: 500; font-size: 0.95rem; padding: 8px 16px; }
.main-navigation a:hover { color: var(--color-accent); }
.header-actions { display: flex; align-items: center; gap: 16px; }
.menu-toggle { background: none; border: none; cursor: pointer; color: var(--color-heading); padding: 8px; display: flex; align-items: center; justify-content: center; }
.menu-toggle span { display: block; width: 22px; height: 2px; background-color: var(--color-heading); position: relative; }
.menu-toggle span::before, .menu-toggle span::after { content: ''; position: absolute; width: 22px; height: 2px; background-color: var(--color-heading); left: 0; }
.menu-toggle span::before { top: -6px; }
.menu-toggle span::after { bottom: -6px; }

/* Mobile Menu Opened Overrides */
.main-navigation.toggled ul { display: flex; flex-direction: column; position: absolute; top: 72px; left: 0; width: 100%; background: var(--color-bg); border-bottom: 1px solid var(--color-border); padding: 24px; gap: 16px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); }

/* Responsive adjustments */
@media (min-width: 768px) {
    .main-navigation ul { display: flex; gap: 8px; }
    .menu-toggle { display: none; }
}

/* Direct Block Editor Spacing Overrides */
.wp-block-paragraph {
    margin-top: 0 !important;
    margin-bottom: 36px !important; /* Forces the generous spacing gap */
    line-height: 1.85 !important;
    display: block !important;
}

/* Fix spacing for the block list items as well */
.wp-block-list li {
    margin-bottom: 12px !important;
    line-height: 1.6 !important;
}

/* Ensure block headings stand out cleanly with top breathing room */
h2.wp-block-heading {
    margin-top: 54px !important;
    margin-bottom: 20px !important;
}

h3.wp-block-heading {
    margin-top: 44px !important;
    margin-bottom: 16px !important;
}

/* Clean Footer Menu Styling */
.footer-legal-nav ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.footer-legal-nav ul li {
    margin-bottom: 12px;
}

.footer-legal-nav ul li a {
    color: #FFF !important;
    text-decoration: none !important;
    opacity: 0.8;
    font-size: 0.95rem;
    transition: opacity 0.2s ease;
}

.footer-legal-nav ul li a:hover {
    opacity: 1;
}

/* Global Link Hover Transitions */
a {
    transition: color 0.25s ease-in-out; /* Smoothly fades the color change instead of an abrupt snap */
}

a:hover {
    color: #cc5500 !important; /* Forces the link to change to burnt orange on hover */
    text-decoration: underline; /* Optional: adds a clean underline to make links highly scannable */
}

/* Keep your footer links looking sharp if you want them to behave differently */
.footer-legal-nav ul li a:hover {
    color: #cc5500 !important; 
    opacity: 1 !important;
}

/* Responsive Mobile Adjustments */
@media (max-width: 768px) {
    .container {
        padding-left: 20px !important;  
        padding-right: 20px !important; 
        box-sizing: border-box !important; 
    }
    
    /* FIX FOR THE STRETCHY SEARCH BAR CONTAINER */
    .search-form-wrap {
        max-width: 100% !important; /* Prevents container overflow */
        width: calc(100% - 32px) !important; /* Leaves a sleek, safe margin gap on the edges */
        padding: 4px !important; /* Snugs up the spacing inside the input area slightly */
    }
    
    /* Clean up the input field text and button sizes on tiny screens */
    .search-field {
        padding: 10px 12px !important;
        font-size: 0.95rem !important;
    }
    
    .search-submit {
        padding: 0 16px !important;
        height: 42px !important;
        font-size: 0.9rem !important;
    }

    /* Scaling down giant headings on mobile */
    .entry-title, h1 {
        font-size: 2.2rem !important;
    }
    
    h2.wp-block-heading {
        font-size: 1.6rem !important;
        margin-top: 36px !important;
    }
}
}