/* ============================================================
   marketingwins-theme - interim theme for marketingwins.org
   Tokens derived from: the live site-header injection CSS
   (brand black #252836, burgundy #6C2929, hairline #f0f0f0,
   pill CTAs, uppercase Quiche Sans display, Poppins 300 body),
   the Marketing Wins book cover (white display type on deep
   charcoal, red/burgundy accent) and the live type scale
   (article title 4.5rem, h2 3.5rem, h3 2.5rem, body 1.1rem).
   Fonts bundled from design-system/fonts. Claude Design v2
   replaces this theme later.
   ============================================================ */

/* --- fonts --- */
@font-face {
    font-family: 'Quiche Sans';
    src: url('../fonts/QuicheSans-Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Poppins';
    src: url('../fonts/Poppins-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Poppins';
    src: url('../fonts/Poppins-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Poppins';
    src: url('../fonts/Poppins-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

/* --- tokens --- */
:root {
    /* design-system v2 (Aleksandra King Brand System, 12 Jul 2026) */
    --accent: #0D019E;           /* indigo, interactive accent */
    --accent-hover: #0a0180;
    --accent-soft: #e7e5f5;
    --radius-md: 12px;
    --radius-lg: 18px;
    --radius-pill: 999px;
    --shadow-sm: 0 2px 8px rgba(37, 40, 54, 0.07);
    --shadow-md: 0 8px 24px rgba(37, 40, 54, 0.09);
    --sand-band: #E1E2DD;
    --brand-black: #252836;
    --brand-burgundy: #752326;   /* editorial maroon (design system) */
    --brand-white: #ffffff;
    --hairline: #f0f0f0;
    --ink-soft: #5c5f6b;         /* ink-70 (design system) */
    --warm: #EFEEEA;             /* sand paper (design system) */
    /* Ghost design-settings custom fonts (--gh-font-heading / --gh-font-body)
       win when set in admin; the brand fonts are the fallback. */
    --font-heading: var(--gh-font-heading, 'Quiche Sans'), Georgia, serif;
    --font-body: var(--gh-font-body, 'Poppins'), -apple-system, sans-serif;
    --header-h: 92px;
    --ghost-accent-color: #6C2929;
}

/* --- reset / base --- */
* { box-sizing: border-box; }
html { font-size: 62.5%; -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 1.7rem;
    line-height: 1.6;
    color: var(--brand-black);
    background: var(--brand-white);
}
img { max-width: 100%; height: auto; }
a {
    color: var(--brand-burgundy);
    text-decoration: underline;
    text-decoration-color: var(--brand-burgundy);
    text-underline-offset: 3px;
    transition: opacity 0.2s;
}
a:hover { opacity: 0.8; }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    color: var(--brand-black);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.1;
    margin: 0 0 20px;
}

.inner {
    max-width: 1200px;
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
}

.eyebrow {
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 1.2rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--brand-burgundy);
    margin: 0 0 14px;
}
.eyebrow a { color: inherit; text-decoration: none; }

.caret { display: inline-block; }

/* --- header --- */
.site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 9999;
    background: var(--brand-white);
    border-bottom: 1px solid var(--hairline);
}
.site-header-inner {
    display: flex;
    align-items: center;
    gap: 32px;
    min-height: var(--header-h);
    max-width: 1400px;
}
.brand { text-decoration: none; margin-right: 8px; }
.brand-name {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 2.5rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--brand-black);
    white-space: nowrap;
}
.brand-accent { color: var(--brand-burgundy); }

.site-nav { flex: 1 1 auto; }
.site-nav .nav {
    display: flex;
    flex-wrap: wrap;
    gap: 26px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.site-nav .nav a {
    font-weight: 600;
    font-size: 1.3rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--brand-black);
    text-decoration: none;
}
.site-nav .nav a:hover { color: var(--brand-burgundy); opacity: 1; }

.site-header-actions { display: flex; align-items: center; gap: 14px; }
.btn, .btn-header {
    display: inline-block;
    background: var(--brand-black);
    color: var(--brand-white);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 1.25rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-radius: 50px;
    padding: 11px 30px;
    border: none;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.3s ease;
}
.btn:hover, .btn-header:hover { background: var(--brand-burgundy); opacity: 1; color: var(--brand-white); }

.nav-toggle { display: none; background: none; border: 0; padding: 10px; cursor: pointer; }
.nav-toggle-bar { display: block; width: 24px; height: 2px; background: var(--brand-black); margin: 5px 0; }

/* --- layout shells --- */
.site-main { padding-top: calc(var(--header-h) + 38px); padding-bottom: 60px; }
.site-main-page { padding-top: var(--header-h); padding-bottom: 0; }

/* --- archive headers (Insights / Chapters / tag / author) --- */
.archive-header { padding: 30px 0 10px; }
.archive-title { font-size: 4.5rem; margin-bottom: 10px; }
.archive-lede { color: var(--ink-soft); font-size: 1.7rem; max-width: 640px; margin: 0 0 10px; }

/* --- card grid --- */
.post-feed { padding: 30px 0 60px; }
.card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 34px;
}
.post-card {
    border: 1px solid var(--hairline);
    background: var(--brand-white);
    display: flex;
    flex-direction: column;
}
.post-card-media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--warm); } /* superseded below to 16/10; matches the 1600x1000 generator, zero crop */
.post-card-image { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 0.5s ease; }
.post-card:hover .post-card-image { transform: scale(1.02); }
.post-card-fallback {
    display: flex; align-items: center; justify-content: center;
    height: 100%; padding: 24px; text-align: center;
}
.post-card-initial { font-family: var(--font-heading); font-size: 2rem; text-transform: uppercase; color: var(--brand-black); }
.post-card-body { padding: 24px 26px 28px; display: flex; flex-direction: column; gap: 10px; }
.post-card-meta, .article-meta {
    font-weight: 400;
    font-size: 1.2rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ink-soft);
    margin: 0;
}
.meta-sep { margin: 0 6px; }
.post-card-title { font-size: 2.1rem; margin: 0; }
.post-card-title a { color: var(--brand-black); text-decoration: none; }
.post-card-title a:hover { color: var(--brand-burgundy); opacity: 1; }
.post-card-excerpt { margin: 0; color: var(--ink-soft); font-size: 1.5rem; }
.post-card-more, .link-more {
    font-weight: 600;
    font-size: 1.2rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--brand-burgundy);
    text-decoration: none;
    margin-top: auto;
}

/* --- pagination --- */
.pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 50px;
    border-top: 1px solid var(--hairline);
    padding-top: 24px;
}
.pagination-link {
    font-weight: 600; font-size: 1.25rem; text-transform: uppercase;
    letter-spacing: 0.1em; text-decoration: none;
}
.pagination-count { font-size: 1.3rem; color: var(--ink-soft); }
.pagination-spacer { width: 1px; }

/* --- article (Scenario B) --- */
.article-header {
    max-width: 900px;
    margin: 0 auto 40px;
    padding: 0 20px;
    text-align: center;
}
.article-title { font-size: 4.5rem; }
.article-feature { max-width: 1000px; margin: 0 auto 40px; padding: 0 20px; }
.article-feature img { display: block; width: 100%; border-radius: 0; }
.article-body {
    max-width: 740px;
    margin: 0 auto;
    padding: 0 20px 60px;
}
.article-body h2 { font-size: 3.5rem; margin-top: 40px; }
.article-body h3 { font-size: 2.5rem; margin-top: 32px; }
.article-body p, .article-body li, .article-body blockquote, .article-body figcaption {
    font-size: 1.8rem;
}
.article-body blockquote {
    border-left: 3px solid var(--brand-burgundy);
    margin: 28px 0;
    padding: 4px 0 4px 24px;
    color: var(--ink-soft);
}
.article-body hr { border: 0; border-top: 1px solid var(--hairline); margin: 40px 0; }

.article-byline {
    max-width: 740px;
    margin: 0 auto 60px;
    padding: 0 20px;
}
.article-byline-inner {
    border: 1px solid var(--hairline);
    padding: 30px 34px;
    background: var(--warm);
}
.byline-name { font-family: var(--font-heading); font-size: 2rem; text-transform: uppercase; margin: 0 0 10px; }

.section-warm { background: var(--warm); padding: 60px 0; }
.section-title { font-size: 3rem; margin-bottom: 30px; }

/* --- Koenig editor card widths (required by Ghost) --- */
.kg-width-wide {
    position: relative;
    width: 85vw;
    min-width: 100%;
    margin: auto calc(50% - 50vw);
    transform: translateX(calc(50vw - 50%));
}
.kg-width-full {
    position: relative;
    width: 100vw;
    min-width: 100%;
    margin: auto calc(50% - 50vw);
}
.kg-width-full img { width: 100%; }

/* --- page canvas: outer stays full-bleed so heroes span; the reading
       column is applied to the content body below (design fix-pack) --- */
.page-canvas { margin: 0; padding: 0; width: 100%; max-width: 100%; }
.page-body { margin: 0; padding: 0; width: 100%; max-width: 100%; }

/* --- panel utilities (ported from the legacy injection, section 7;
       41 live records reference these as a shared fallback) --- */
.magazine-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    align-items: stretch;
    overflow: hidden;
    margin-bottom: 0;
}
.magazine-col {
    width: 50%;
    min-height: 650px;
    position: relative;
    border-bottom: 1px solid var(--hairline);
    border-right: 1px solid var(--hairline);
}
.magazine-bg {
    width: 100%; height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0; left: 0;
    z-index: 1;
    transition: transform 0.5s ease;
}
.magazine-col:hover .magazine-bg { transform: scale(1.02); }
.white-box-overlay {
    position: absolute;
    z-index: 3;
    bottom: 50px; left: 50px;
    background-color: var(--brand-white);
    padding: 35px 45px;
    max-width: 80%;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}
.intro-white-box {
    width: 90%;
    height: 90%;
    background-color: var(--brand-white);
    padding: 50px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    z-index: 10;
    position: relative;
}
.magazine-col.intro-panel {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- subscriber gate (Ghost renders .gh-post-upgrade-cta for gated
       content; styling ported from the legacy injection) --- */
.gh-post-upgrade-cta-content {
    background-color: var(--brand-white);
    border: 1px solid var(--hairline);
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    color: var(--brand-black);
    padding: 60px 40px;
    max-width: 800px;
    margin: 40px auto;
    border-radius: 0;
}
.gh-post-upgrade-cta h2 {
    font-family: var(--font-heading);
    color: var(--brand-black);
    font-size: 2.5rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: 10px;
    line-height: 1.1;
}
.gh-post-upgrade-cta a.gh-btn {
    background-color: var(--brand-black);
    color: var(--brand-white);
    font-family: var(--font-body);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-radius: 50px;
    padding: 12px 40px;
    font-size: 1.3rem;
    border: none;
    box-shadow: none;
    margin-top: 20px;
    transition: all 0.3s ease;
    text-decoration: none;
}
.gh-post-upgrade-cta a.gh-btn:hover { background-color: var(--brand-burgundy); opacity: 1; }
.gh-post-upgrade-cta p, .gh-post-upgrade-cta small {
    font-family: var(--font-body);
    color: var(--ink-soft);
    font-size: 1.4rem;
    margin-top: 15px;
}
.gh-post-upgrade-cta a { color: var(--brand-burgundy); text-decoration: underline; font-weight: 600; }

/* --- footer --- */
.site-footer {
    border-top: 1px solid var(--hairline);
    padding: 50px 0 40px;
    margin-top: 0;
}
.footer-brand {
    display: block;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 2rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--brand-black);
    text-decoration: none;
    margin-bottom: 20px;
}
.footer-nav .nav {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
}
.footer-nav .nav a {
    font-weight: 600;
    font-size: 1.2rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--brand-black);
    text-decoration: none;
}
.footer-credit { font-size: 1.4rem; color: var(--ink-soft); margin: 0 0 24px; }
.footer-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    border-top: 1px solid var(--hairline);
    padding-top: 24px;
}
.footer-copyright { font-size: 1.3rem; color: var(--ink-soft); margin: 0; }
.footer-signup {
    font-weight: 600; font-size: 1.2rem; text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* --- error pages --- */
.error-main { padding-top: 140px; text-align: center; }

/* --- responsive --- */
@media (max-width: 1024px) {
    .card-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
    .site-nav {
        display: none;
        position: absolute;
        top: 100%; left: 0; right: 0;
        background: var(--brand-white);
        border-bottom: 1px solid var(--hairline);
        padding: 18px 20px 24px;
    }
    .site-nav.is-open { display: block; }
    .site-nav .nav { flex-direction: column; gap: 16px; }
    .nav-toggle { display: block; }
    .btn-header { display: none; }
    .archive-title { font-size: 3.4rem; }
    .article-title { font-size: 3.2rem; }
    .article-body h2 { font-size: 2.6rem; }
    .article-body h3 { font-size: 2.1rem; }
}
@media (max-width: 720px) {
    .card-grid { grid-template-columns: 1fr; }
    .brand-name { font-size: 2rem; }
}

/* ============ overhaul v2: CTA blocks, bios, showcases, chapter hub ============ */
.book-cta { background: var(--warm); border-top: 3px solid var(--brand-burgundy); padding: 36px 40px; margin: 48px 0 8px; }
.book-cta-kicker { font-size: 1.2rem; letter-spacing: .14em; text-transform: uppercase; color: var(--brand-burgundy); font-weight: 600; margin: 0 0 8px; }
.book-cta h3 { margin: 0 0 10px; }
.book-cta-actions, .cta-band-actions { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin: 18px 0 0; }
.book-cta-alt { color: var(--brand-burgundy); font-weight: 600; }
.author-bios { border-top: 1px solid #e5e2dc; margin-top: 44px; padding-top: 28px; }
.author-bios p { font-size: 1.5rem; color: var(--ink-soft); }
.chapter-lede { font-size: 1.9rem; color: var(--ink-soft); }
.home-hero { background: var(--warm); padding: 96px 0 72px; text-align: center; }
.home-hero .inner { max-width: 860px; margin: 0 auto; padding: 0 24px; }
.home-title { font-size: 5.6rem; line-height: 1.05; margin: 12px 0 18px; }
.home-standfirst { font-size: 2rem; color: var(--ink-soft); max-width: 640px; margin: 0 auto 26px; }
.home-hero .cta-band-actions { justify-content: center; }
.home-body .inner-narrow { max-width: 740px; margin: 0 auto; padding: 56px 24px 8px; }
.chapter-strip { padding: 64px 0; }
.chapter-strip .inner, .cta-band .inner { max-width: 1040px; margin: 0 auto; padding: 0 24px; }
.chapter-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; margin-top: 28px; }
.chapter-tile { display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--brand-black); }
.chapter-tile img { width: 100%; height: auto; display: block; border: 1px solid #eceae5; }
.chapter-tile:hover .chapter-tile-title { color: var(--brand-burgundy); }
.chapter-tile-title { font-weight: 600; font-size: 1.5rem; line-height: 1.3; }
.chapter-tile-excerpt { font-size: 1.35rem; color: var(--ink-soft); }
.chapter-list { margin: 24px 0 0; padding-left: 22px; }
.chapter-list li { margin: 0 0 14px; font-size: 1.6rem; }
.chapter-list-excerpt { display: block; color: var(--ink-soft); font-size: 1.4rem; }
.cta-band { background: var(--brand-black); color: var(--brand-white); padding: 64px 0; margin-top: 56px; }
.cta-band h2 { color: var(--brand-white); margin: 8px 0 12px; }
.cta-band .eyebrow { color: #d8a7a7; }
.cta-band-copy { color: #cfd0d8; max-width: 620px; }
.cta-band .book-cta-alt { color: #d8a7a7; }
@media (max-width: 900px) { .chapter-grid { grid-template-columns: repeat(2, 1fr); } .home-title { font-size: 4rem; } }
@media (max-width: 560px) { .chapter-grid { grid-template-columns: 1fr; } }

/* ============ design-system v2 treatments (fidelity pass) ============ */
/* Buttons: pill, 1.5px border, Poppins medium, calm tracking; primary = indigo */
.btn, .btn-header, .cta-band .btn, .book-cta .btn {
    background: var(--accent);
    border: 1.5px solid var(--accent);
    border-radius: var(--radius-pill);
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: none;
    padding: 12px 26px;
    transition: background 140ms cubic-bezier(0.22, 1, 0.36, 1);
}
.btn:hover, .btn-header:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--brand-white); }
/* Links interact in indigo; editorial marks stay maroon */
.gh-content a:not(.btn):not(.book-cta-alt) { color: var(--accent); }
.gh-content a:not(.btn):hover { color: var(--accent-hover); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
/* Cards: generous soft rounding, airy shadows */
.chapter-tile img, .post-card-image img { border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.chapter-tile:hover img { box-shadow: var(--shadow-md); }
.book-cta { border-radius: var(--radius-lg); border-top-width: 3px; }
.cta-band { border-radius: 0; }
/* Eyebrows: the brand's wide-tracked caps */
.eyebrow, .book-cta-kicker { letter-spacing: 0.22em; }
/* Header band option from the editorial palette */
.home-hero, .archive-header { background: var(--warm); }

/* home hero photography (design shoot) */
.home-hero-photo { margin: 0 auto; max-width: 1040px; padding: 0 24px; }
.home-hero-photo img { width: 100%; display: block; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); margin-top: -36px; }


/* ================================================================
   THEME V2 SKIN (mockup implementation, 13 Jul 2026)
   Chrome: ink nav + dark footer. Modules: ink hero with offset cover,
   pull quote, sand chapter cards (maroon numerals via css counter),
   authors block, 16:10 insight cards, indigo buy band.
   ================================================================ */
:root { --peach: #F8D8C0; --pale: #EDF4F6; --indigo-tint: #E7E5F5; }

/* --- chrome: nav 72/60, ink --- */
.site-header { background: var(--brand-black); border-bottom: none; position: sticky; top: 0; z-index: 100; }
.site-header-inner { height: 72px; display: flex; align-items: center; }
.brand-name, .brand-name .brand-accent { color: var(--brand-white); font-family: var(--font-heading); letter-spacing: 0.14em; text-transform: uppercase; font-size: 1.8rem; }
.site-nav .nav a { color: rgba(255,255,255,0.82); font-size: 1.4rem; font-weight: 500; letter-spacing: 0.02em; }
.site-nav .nav a:hover, .site-nav .nav .nav-current a { color: var(--brand-white); }
.btn-header { background: var(--accent); border-color: var(--accent); color: var(--brand-white); padding: 10px 22px; font-size: 1.4rem; }
.nav-toggle-bar { background: var(--brand-white); }
@media (max-width: 900px) {
  .site-header-inner { height: 60px; }
  .site-nav { background: var(--brand-black); }
}

/* --- ink hero with offset book cover --- */
.hero-ink { background: var(--brand-black); color: var(--brand-white); padding: 88px 0 96px; }
.hero-ink-grid { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 48px; align-items: center; max-width: 1200px; margin: 0 auto; padding: 0 48px; }
.kicker { font-family: var(--font-body); font-size: 1.3rem; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); margin: 0 0 14px; }
.kicker-peach { color: var(--peach); }
.hero-display { font-family: var(--font-heading); font-weight: 500; font-size: 7.6rem; line-height: 1.02; letter-spacing: -0.01em; color: var(--brand-white); margin: 0 0 22px; max-width: 12ch; }
.hero-lead { font-size: 1.8rem; line-height: 1.6; color: rgba(255,255,255,0.72); max-width: 46ch; margin: 0 0 30px; }
.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; margin: 0; }
.btn-outline-dark { background: transparent; border: 1.5px solid rgba(255,255,255,0.85); color: var(--brand-white); }
.btn-outline-dark:hover { background: rgba(255,255,255,0.1); border-color: var(--brand-white); color: var(--brand-white); }
.hero-cover-wrap { position: relative; width: 320px; justify-self: end; }
.hero-cover-offset { position: absolute; inset: -6% -7% -6% 9%; background: var(--accent); border-radius: 28px; transform: rotate(2.5deg); }
.hero-cover { position: relative; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 12px; box-shadow: 0 20px 48px rgba(37,40,54,0.12); display: block; }
@media (max-width: 900px) {
  .hero-ink { padding: 56px 0 64px; }
  .hero-ink-grid { grid-template-columns: 1fr; padding: 0 20px; gap: 40px; }
  .hero-display { font-size: 4.4rem; }
  .hero-cover-wrap { width: 230px; justify-self: center; }
}

/* --- pull quote band --- */
.pull-quote-band { padding: 72px 0; text-align: center; }
.pull-quote-band .inner-narrow { max-width: 720px; margin: 0 auto; padding: 0 24px; }
.pull-quote-mark { font-family: var(--font-heading); font-size: 4.8rem; line-height: 0.5; color: var(--accent); margin: 0 0 10px; }
.pull-quote-text { font-family: var(--font-heading); font-size: 3rem; line-height: 1.4; color: var(--brand-black); margin: 0 0 18px; }
.pull-quote-cite { font-weight: 600; font-size: 1.4rem; margin: 0; }
.pull-quote-role { color: var(--ink-soft); font-size: 1.3rem; margin: 2px 0 0; }

/* --- sections --- */
.section-pale { background: var(--pale); padding: 72px 0; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 28px; }
.section-head h2 { margin: 0; }
.ghost-link { color: var(--accent); font-weight: 500; font-size: 1.4rem; text-decoration: none; white-space: nowrap; }
.ghost-link:hover { color: var(--accent-hover); }

/* --- sand chapter cards, maroon numerals (css counter: grid is slug-ordered) --- */
.chapter-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; counter-reset: chn; }
.chapter-card-v2 { background: var(--warm); border-radius: var(--radius-lg); padding: 28px 26px 30px; text-decoration: none; color: var(--brand-black); display: flex; flex-direction: column; gap: 10px; counter-increment: chn; transition: box-shadow 240ms cubic-bezier(0.22,1,0.36,1), transform 240ms cubic-bezier(0.22,1,0.36,1); }
.chapter-card-v2:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.chapter-num::before { content: "0" counter(chn); }
.chapter-num { font-family: var(--font-heading); font-weight: 500; font-size: 3.2rem; line-height: 1; color: var(--brand-burgundy); }
.chapter-card-title { font-family: var(--font-heading); font-size: 2rem; line-height: 1.2; }
.chapter-card-v2:hover .chapter-card-title { color: var(--accent); }
.chapter-card-excerpt { font-size: 1.4rem; color: var(--ink-soft); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.chapter-card-grid .chapter-card-v2:nth-child(n+10) { display: none; }
@media (max-width: 900px) { .chapter-card-grid { grid-template-columns: 1fr; gap: 14px; } }

/* --- authors block --- */
.authors-block { padding: 72px 0; }
.authors-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: center; }
.authors-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 28px; box-shadow: var(--shadow-md); }
.authors-copy .kicker { color: var(--accent); }
@media (max-width: 900px) { .authors-grid { grid-template-columns: 1fr; gap: 28px; } }

/* --- insight cards: 16:10, tag pills, 2-line titles, card clips 18 --- */
.post-card { border-radius: var(--radius-lg); overflow: hidden; background: var(--brand-white); box-shadow: var(--shadow-sm); transition: box-shadow 240ms cubic-bezier(0.22,1,0.36,1); }
.post-card:hover { box-shadow: var(--shadow-md); }
.post-card-media { aspect-ratio: 16 / 10; }
.post-card-image, .chapter-tile img { border-radius: 0; box-shadow: none; }
.post-card-body { padding: 20px 22px 24px; }
.post-card-title { font-size: 2.1rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.post-card-title a:hover { color: var(--accent); }
.post-card-meta { font-size: 1.25rem; }
.post-card-more { color: var(--accent); }
.home-reading { padding-top: 56px; padding-bottom: 40px; }

/* --- buy band: indigo panel, ink button --- */
.buy-band { padding: 0 0 72px; }
.buy-band .inner { max-width: 1200px; margin: 0 auto; padding: 0 48px; }
.buy-band-panel { background: var(--accent); color: var(--brand-white); border-radius: 28px; padding: 64px 56px; display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.buy-band-panel h2 { color: var(--brand-white); margin: 0 0 8px; max-width: 18ch; }
.buy-band-panel p { color: rgba(255,255,255,0.72); margin: 0; }
.btn-ink { background: var(--brand-black); border-color: var(--brand-black); color: var(--brand-white); }
.btn-ink:hover { background: #14161f; border-color: #14161f; color: var(--brand-white); }
@media (max-width: 900px) { .buy-band .inner { padding: 0 20px; } .buy-band-panel { border-radius: 18px; padding: 40px 28px; } }

/* --- footer: dark, columned --- */
.site-footer { background: var(--brand-black); color: rgba(255,255,255,0.8); padding: 64px 0 28px; }
.site-footer-grid { display: grid; grid-template-columns: 1.4fr 0.8fr 0.8fr; gap: 40px; margin-bottom: 40px; }
.footer-brand { color: var(--brand-white); font-family: var(--font-heading); font-size: 2.2rem; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; line-height: 1.3; }
.footer-tagline { color: rgba(255,255,255,0.6); font-size: 1.35rem; max-width: 30ch; }
.footer-col { display: flex; flex-direction: column; gap: 8px; }
.footer-col a { color: rgba(255,255,255,0.8); text-decoration: none; font-size: 1.4rem; }
.footer-col a:hover { color: var(--brand-white); }
.footer-col .nav { display: flex; flex-direction: column; gap: 8px; list-style: none; margin: 0; padding: 0; }
.footer-col .nav a { color: rgba(255,255,255,0.8); }
.footer-col-title { font-size: 1.2rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.5); font-weight: 600; margin: 0 0 6px; }
.footer-credit, .footer-copyright { color: rgba(255,255,255,0.55); }
.footer-meta { border-top: 1px solid rgba(255,255,255,0.14); padding-top: 22px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.footer-signup { color: var(--peach); }
@media (max-width: 900px) { .site-footer-grid { grid-template-columns: 1fr; gap: 28px; } }

/* --- post hero 16:9 --- */
.article-feature-169 img { aspect-ratio: 16 / 9; object-fit: cover; max-width: 1000px; border-radius: 18px; margin: 0 auto; display: block; }
@media (max-width: 900px) { .article-feature-169 img { border-radius: 12px; } }

/* prose links: inline indigo, 1px underline offset 3 */
.gh-content a:not(.btn):not(.book-cta-alt) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* content book-cta block: editorial sand panel, indigo action */
.book-cta { background: var(--warm); border-top: 3px solid var(--brand-burgundy); border-radius: var(--radius-lg); }
.book-cta-kicker { color: var(--brand-burgundy); }
.book-cta-alt { color: var(--accent); }

/* ================================================================
   DESIGN FIX-PACK ABSORPTION (13 Jul 2026)
   Root cause: .page-canvas/.page-body forced full-bleed zero-padding
   (written for the retired magazine dumps), so the utility pages
   (contact, thank-you, faqs, authors, submit-a-win, image-assets) ran
   edge-to-edge with oversized images and an unstyled contact form.
   Reconciled to theme tokens; Design's layout intent kept (740 column,
   560 image cap). Scoped :not(.home-body) so the-book keeps its own
   working inner-narrow column (no double-constraint regression).
   Superseded delivery: the same rules as a code-injection paste; NOT
   used - styling stays single-source in this file.
   ================================================================ */
:root { --field-border: #d7d8dd; }

/* 1. Page content -> centred, padded reading column (matches .article-body) */
.page-canvas .page-body:not(.home-body),
.page-canvas .gh-content:not(.home-body) {
    max-width: 740px;
    width: auto;
    margin: 0 auto;
    padding: 0 24px 56px;
}

/* 2. Standalone in-content images -> capped, centred, soft corners.
      (.kg-image is image-card only; galleries use .kg-gallery-image, exempt) */
.page-body .kg-card.kg-image-card,
.page-body figure.kg-image-card {
    margin: 32px auto;
    text-align: center;
}
.page-body .kg-image {
    display: block;
    width: 100%;
    max-width: 560px;
    height: auto;
    margin: 0 auto;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

/* 3. Contact form -> brand-styled: stacked, full-width fields, pill submit */
.gh-contact-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-width: 560px;
    margin: 28px 0 8px;
}
.gh-contact-form label {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 1.3rem;
    letter-spacing: 0.04em;
    color: var(--ink-soft);
}
.gh-contact-form input,
.gh-contact-form textarea {
    font-family: var(--font-body);
    font-size: 1.6rem;
    color: var(--brand-black);
    background: var(--brand-white);
    border: 1.5px solid var(--field-border);
    border-radius: var(--radius-md);
    padding: 12px 14px;
    width: 100%;
}
.gh-contact-form textarea { min-height: 150px; resize: vertical; }
.gh-contact-form input:focus,
.gh-contact-form textarea:focus {
    outline: none;
    border-color: var(--accent);
}
.gh-contact-form button {
    align-self: flex-start;
    background: var(--accent);
    color: var(--brand-white);
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 1.4rem;
    letter-spacing: 0.02em;
    border: 1.5px solid var(--accent);
    border-radius: var(--radius-pill);
    padding: 13px 30px;
    cursor: pointer;
    transition: background 140ms cubic-bezier(0.22, 1, 0.36, 1);
}
.gh-contact-form button:hover {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
}

/* 4. Base reading width for .inner-narrow (homepage mid-page block was
      full-bleed); specific rules (.home-body, .pull-quote-band) still win */
.inner-narrow {
    max-width: 740px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}
