/* =============================================================================
   GLOBAL.CSS — shawnjason.com
   -----------------------------------------------------------------------------
   Single source of truth for colors and fonts, same role Cornerstone's
   Global Colors / Font Manager played before. Every other file should
   reference these variables rather than hardcoding hex values or font names.
   ============================================================================= */

/* -----------------------------------------------------------------------------
   FONTS — self-hosted, upload the actual .woff2 files to /assets/fonts/
   and update the paths below to match your filenames exactly.
   ----------------------------------------------------------------------------- */

@font-face {
    font-family: 'Merriweather';
    src: url('../fonts/merriweather-900.woff2') format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Newsreader';
    src: url('../fonts/newsreader-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Newsreader';
    src: url('../fonts/newsreader-italic.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Newsreader';
    src: url('../fonts/newsreader-600.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Mono';
    src: url('../fonts/ibm-plex-mono-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Mono';
    src: url('../fonts/ibm-plex-mono-500.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* -----------------------------------------------------------------------------
   COLOR PALETTE — Newsprint & Rust (site-wide base)
   ----------------------------------------------------------------------------- */

:root {
    --paper:      #EFEAE1;
    --ink:        #211F1C;
    --rust:       #B34A24;
    --moss:       #5C6B4F;
    --gold:       #B8934A;

    /* Font roles */
    --font-heading: 'Merriweather', serif;
    --font-body:    'Newsreader', serif;
    --font-mono:    'IBM Plex Mono', monospace;
}

/* -----------------------------------------------------------------------------
   BASE ELEMENT DEFAULTS
   ----------------------------------------------------------------------------- */

/* Defensive backup: hide any leftover Astra title wrapper/spacing,
   in case the astra_the_title_enabled filter doesn't remove it fully. */
.ast-container .page-header,
.entry-header,
.ast-single-post-header {
    display: none !important;
}

body {
    background-color: var(--paper);
    color: var(--ink);
    font-family: var(--font-body);
    line-height: 1.5;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 900;
    color: var(--ink);
    line-height: 1.05;
}

/* Body/content links: Rust at rest, Ink on hover, underline appears on hover only */
.entry-content a,
.site-content a {
    color: var(--rust);
    text-decoration: none;
}
.entry-content a:hover,
.site-content a:hover {
    color: var(--ink);
    text-decoration: underline;
}

/* -----------------------------------------------------------------------------
   SHARED POST META & COMPONENT STYLES
   Used across every post type (Writing, Video, etc.) — defined once here
   so nothing needs to be duplicated per-template.
   ----------------------------------------------------------------------------- */

.meta-row {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.01em;
    line-height: 1.3;
    color: var(--ink);
}
.meta-pill {
    background-color: rgba(33, 31, 28, 0.85);
    color: var(--paper) !important;
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 12px;
    text-decoration: none;
}
.meta-pill:hover,
.meta-pill:visited,
.meta-pill:focus {
    background-color: var(--rust);
    color: var(--paper) !important;
}
.byline-row {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.01em;
    line-height: 1.3;
    color: var(--ink);
}
.byline-row a {
    color: var(--rust);
    text-decoration: none;
    font-weight: 500;
}
.byline-row a:hover {
    text-decoration: underline;
}

.article p {
    font-family: var(--font-body);
    font-size: 17px;
    margin-bottom: 22px;
    color: #2c2a26;
}

.side-card {
    background-color: #fff;
    border: 1px solid rgba(33, 31, 28, 0.12);
    border-radius: 8px;
    padding: 24px;
}
.side-card .label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--rust);
    margin-bottom: 10px;
}
.side-card h3 {
    font-family: var(--font-heading);
    font-size: 18px;
    text-transform: uppercase;
    margin-bottom: 10px;
    line-height: 1.2;
}
.side-card p {
    font-size: 14px;
    color: #4a463f;
    margin-bottom: 14px;
}
.side-card a.btn {
    display: inline-block;
    background-color: var(--rust);
    color: var(--paper);
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 10px 18px;
    border-radius: 4px;
}

.body-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 50px 24px 100px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 50px;
    background-color: var(--paper);
}

@media (max-width: 880px) {
    .body-wrap {
        grid-template-columns: 1fr;
        padding-top: 30px;
    }
}


/* Guarantee Paper background across every wrapper, every post type */
html,
body,
.ast-separate-container,
.ast-container,
.site,
.site-content,
.content-area,
#primary,
#content,
#main,
.entry-content,
article {
    background-color: var(--paper) !important;
}
