/*
Theme Name: Free Market Ecology Solarpunk
Theme URI: https://freemarketecology.com
Description: A solarpunk-themed child theme for Free Market Ecology - dark forest green aesthetic with nature-meets-tech styling.
Author: J.W. Sher
Author URI: https://botsfordism.substack.com
Template: twentytwentyfour
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: freemarketecology-solarpunk
*/

/* =============================================
   SOLARPUNK THEME - Dark Forest Green + Gold
   ============================================= */

:root {
    --fme-bg-primary: #0a1a0f;
    --fme-bg-secondary: #0f2416;
    --fme-bg-card: #132b1a;
    --fme-bg-hover: #1a3622;
    --fme-text-primary: #e8e4d9;
    --fme-text-secondary: #b8b4a6;
    --fme-text-muted: #8a8678;
    --fme-accent-green: #4CAF50;
    --fme-accent-light-green: #8BC34A;
    --fme-accent-gold: #FFB300;
    --fme-accent-amber: #FF8F00;
    --fme-border: #1e3d26;
    --fme-border-light: #2a4d32;
    --fme-link: #8BC34A;
    --fme-link-hover: #FFB300;
    --fme-font-body: "Georgia", "Times New Roman", serif;
    --fme-font-heading: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

/* Base */
html {
    scroll-behavior: smooth;
}

body, .wp-site-blocks {
    background-color: var(--fme-bg-primary) !important;
    color: var(--fme-text-primary) !important;
    font-family: var(--fme-font-body) !important;
    line-height: 1.8 !important;
    font-size: 18px !important;
}

/* Typography */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
    font-family: var(--fme-font-heading) !important;
    color: var(--fme-text-primary) !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    margin-top: 2em !important;
    margin-bottom: 0.6em !important;
}

h1, .wp-block-heading:where(h1) { font-size: 2.4rem !important; color: var(--fme-accent-gold) !important; }
h2, .wp-block-heading:where(h2) { font-size: 1.8rem !important; color: var(--fme-accent-light-green) !important; border-bottom: 1px solid var(--fme-border); padding-bottom: 0.3em; }
h3, .wp-block-heading:where(h3) { font-size: 1.4rem !important; color: var(--fme-accent-green) !important; }
h4, .wp-block-heading:where(h4) { font-size: 1.2rem !important; }

p {
    color: var(--fme-text-primary) !important;
    margin-bottom: 1.4em !important;
    max-width: 48em;
}

a {
    color: var(--fme-link) !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}
a:hover {
    color: var(--fme-link-hover) !important;
    text-decoration: underline !important;
}

/* =============================================
   CUSTOM SITE HEADER
   ============================================= */
.site-header {
    background: linear-gradient(180deg, #060e08 0%, var(--fme-bg-primary) 100%);
    border-bottom: 2px solid var(--fme-accent-green);
    padding: 0.8rem 2rem;
    position: sticky;
    top: 0;
    z-index: 1000;
}

.site-header-inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.site-branding .site-title {
    margin: 0 !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
}

.site-title-link {
    text-decoration: none !important;
}

.site-title-link .site-title {
    color: var(--fme-accent-gold) !important;
}

.site-title-link:hover .site-title {
    color: var(--fme-accent-light-green) !important;
}

/* Menu Toggle (Mobile) */
.menu-toggle {
    display: none;
    background: none;
    border: 1px solid var(--fme-border-light);
    color: var(--fme-text-primary);
    font-size: 1.5rem;
    padding: 0.3rem 0.6rem;
    cursor: pointer;
    border-radius: 4px;
}

/* =============================================
   CLASSIC NAV MENU (wp_nav_menu)
   ============================================= */
.site-navigation {
    display: flex;
    align-items: center;
}

.nav-menu {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
}

.nav-menu li {
    position: relative;
    margin: 0 !important;
}

.nav-menu li a {
    display: block;
    color: var(--fme-text-primary) !important;
    font-family: var(--fme-font-heading) !important;
    font-size: 0.9rem !important;
    padding: 0.5em 0.8em !important;
    text-decoration: none !important;
    transition: color 0.2s ease;
    white-space: nowrap;
}

.nav-menu li a:hover,
.nav-menu li.current-menu-item > a {
    color: var(--fme-accent-gold) !important;
    text-decoration: none !important;
}

/* Dropdown arrow indicator */
.nav-menu li.menu-item-has-children > a::after {
    content: " \25BE";
    font-size: 0.7em;
    opacity: 0.6;
}

/* Sub-menu (dropdowns) */
.nav-menu .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: var(--fme-bg-secondary);
    border: 1px solid var(--fme-border-light);
    border-radius: 4px;
    padding: 0.4em 0;
    margin: 0;
    list-style: none;
    min-width: 240px;
    z-index: 1001;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.nav-menu li:hover > .sub-menu {
    display: block;
}

.nav-menu .sub-menu li a {
    padding: 0.5em 1.2em !important;
    font-size: 0.85rem !important;
    color: var(--fme-text-secondary) !important;
}

.nav-menu .sub-menu li a:hover {
    background-color: var(--fme-bg-hover);
    color: var(--fme-accent-gold) !important;
}

/* =============================================
   BLOCK THEME HEADER OVERRIDES (hide default)
   ============================================= */
.wp-block-template-part header,
header.wp-block-template-part {
    display: none !important;
}

/* Block theme navigation (hide if present) */
.wp-block-navigation {
    display: none !important;
}

/* =============================================
   MAIN CONTENT
   ============================================= */
.wp-block-post-content,
.entry-content,
.page-content {
    max-width: 800px !important;
    margin: 0 auto !important;
    padding: 2rem 1.5rem !important;
}

.wp-block-post-title,
.entry-title {
    color: var(--fme-accent-gold) !important;
    font-size: 2.6rem !important;
    text-align: center !important;
    margin-bottom: 0.5em !important;
}

/* Blockquotes */
blockquote,
.wp-block-quote {
    border-left: 4px solid var(--fme-accent-green) !important;
    background-color: var(--fme-bg-secondary) !important;
    padding: 1.2em 1.6em !important;
    margin: 1.5em 0 !important;
    border-radius: 0 4px 4px 0 !important;
}
blockquote p,
.wp-block-quote p {
    color: var(--fme-text-secondary) !important;
    font-style: italic !important;
}

/* Lists */
ul, ol {
    color: var(--fme-text-primary) !important;
    padding-left: 1.5em !important;
    margin-bottom: 1.4em !important;
}
li {
    margin-bottom: 0.5em !important;
    color: var(--fme-text-primary) !important;
}

/* Author Box */
.author-box {
    background: linear-gradient(135deg, var(--fme-bg-secondary) 0%, #0d2012 100%) !important;
    border: 1px solid var(--fme-accent-green) !important;
    border-radius: 8px !important;
    padding: 1.8em 2em !important;
    margin: 3em 0 2em !important;
    text-align: center !important;
}
.author-box h3 {
    color: var(--fme-accent-gold) !important;
    margin-top: 0 !important;
    font-size: 1.2rem !important;
}
.author-box p {
    color: var(--fme-text-secondary) !important;
    margin: 0 auto !important;
}
.author-box a {
    color: var(--fme-accent-light-green) !important;
    font-weight: 600 !important;
}
.author-box a:hover {
    color: var(--fme-accent-gold) !important;
}

/* =============================================
   CUSTOM SITE FOOTER
   ============================================= */
.site-footer {
    background-color: #060e08;
    border-top: 2px solid var(--fme-accent-green);
    padding: 2rem;
    text-align: center;
    margin-top: 3rem;
}
.site-footer p {
    color: var(--fme-text-muted) !important;
    font-size: 0.9rem !important;
    margin: 0.3em auto !important;
}
.site-footer a {
    color: var(--fme-text-muted) !important;
}
.site-footer a:hover {
    color: var(--fme-accent-gold) !important;
}

/* Hide block theme footer */
.wp-block-template-part footer,
footer.wp-block-template-part {
    display: none !important;
}

/* =============================================
   MISC ELEMENTS
   ============================================= */

/* Images */
.wp-block-image img {
    border-radius: 6px !important;
    border: 1px solid var(--fme-border) !important;
}

/* Tables */
table, .wp-block-table {
    border-collapse: collapse !important;
}
table th {
    background-color: var(--fme-bg-secondary) !important;
    color: var(--fme-accent-gold) !important;
    padding: 0.8em 1em !important;
    border: 1px solid var(--fme-border-light) !important;
}
table td {
    padding: 0.8em 1em !important;
    border: 1px solid var(--fme-border) !important;
    color: var(--fme-text-primary) !important;
}

/* Horizontal Rule */
hr, .wp-block-separator {
    border-color: var(--fme-border-light) !important;
    opacity: 0.5 !important;
    margin: 2em 0 !important;
}

/* Code blocks */
code, pre {
    background-color: var(--fme-bg-secondary) !important;
    color: var(--fme-accent-light-green) !important;
    border-radius: 4px !important;
    padding: 0.2em 0.5em !important;
    font-size: 0.9em !important;
}
pre {
    padding: 1.2em !important;
    overflow-x: auto !important;
}

/* Selection */
::selection {
    background: var(--fme-accent-green) !important;
    color: #fff !important;
}

/* Page title on static pages */
.page .wp-block-post-title {
    margin-top: 0.5em !important;
}

/* Strong / Bold */
strong, b {
    color: var(--fme-text-primary) !important;
    font-weight: 700 !important;
}

/* Emphasis */
em, i {
    color: var(--fme-text-secondary) !important;
}

/* =============================================
   MOBILE RESPONSIVE
   ============================================= */
@media (max-width: 768px) {
    body {
        font-size: 16px !important;
    }
    h1, .wp-block-post-title { font-size: 1.8rem !important; }
    h2 { font-size: 1.4rem !important; }
    .wp-block-post-content, .entry-content {
        padding: 1rem !important;
    }
    .author-box {
        padding: 1.2em !important;
    }

    /* Mobile navigation */
    .menu-toggle {
        display: block;
    }
    .site-navigation {
        display: none;
        width: 100%;
        order: 3;
    }
    .site-navigation.is-open {
        display: block;
    }
    .nav-menu {
        flex-direction: column;
        width: 100%;
    }
    .nav-menu li {
        width: 100%;
    }
    .nav-menu li a {
        padding: 0.7em 1em !important;
        border-bottom: 1px solid var(--fme-border);
    }
    .nav-menu .sub-menu {
        position: static;
        display: block;
        border: none;
        box-shadow: none;
        background-color: var(--fme-bg-card);
        padding-left: 1em;
    }
    .site-header {
        padding: 0.6rem 1rem;
    }
}

/* Scrollbar styling for dark theme */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: var(--fme-bg-primary);
}
::-webkit-scrollbar-thumb {
    background: var(--fme-border-light);
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--fme-accent-green);
}
