/* Portrait theme — sampled from Ronneby demo #50 (Lions Lawyers). Elegant editorial:
   Lustria serif headings + Montserrat body, near-monochrome with a restrained warm
   accent. Token-only theme — it reuses the Grain structural components (gr-* prefix,
   serif-editorial) and gets its distinct, quieter identity from these token overrides.
   Scoped under `.theme-portrait`. */
.theme-portrait {
    --kw-accent: #9f6f59;          /* muted tan/bronze — used sparingly */
    --kw-accent-deep: #7f5644;
    --kw-accent-soft: #cbb0a2;
    --kw-light: #ffffff;
    --kw-dark: #1a1a1a;
    --kw-dark-soft: #2c2c2c;
    --kw-text: #222222;
    --kw-text-muted: #8a8a8a;
    --kw-border: rgba(26, 26, 26, 0.10);
    --kw-border-strong: #dcdcdc;
    --kw-font: 'Montserrat', system-ui, -apple-system, sans-serif;
    --kw-font-heading: 'Lustria', Georgia, 'Times New Roman', serif;
    --kw-radius: 0px;
    --kw-border-width: 1px;
}

/* Editorial serif headings — a hair looser, quieter than Grain's warm crimson voice. */
.theme-portrait h1, .theme-portrait h2, .theme-portrait h3 {
    font-weight: 400; letter-spacing: -0.01em; line-height: 1.15;
}
/* Near-monochrome: section titles in restrained ink, not accent, with wide tracking. */
.theme-portrait .fk-section-title { color: var(--kw-text-muted); letter-spacing: 0.2em; }

/* Thin, understated accent rule under block titles — editorial, not loud. */
.theme-portrait .kw-block-featured-title,
.theme-portrait .kw-block-products-header h2,
.theme-portrait .kw-block-news-title,
.theme-portrait .kw-block-categories-title { position: relative; padding-bottom: 1rem; }
.theme-portrait .kw-block-featured-title::after,
.theme-portrait .kw-block-products-header h2::after,
.theme-portrait .kw-block-news-title::after,
.theme-portrait .kw-block-categories-title::after {
    content: ""; position: absolute; left: 0; bottom: 0;
    width: 2rem; height: 2px; background: var(--kw-accent);
}

.kw-site.theme-portrait:has(.kw-page--article) .gr-header {
    background: rgba(255, 255, 255, 0.98);
    border-bottom: 1px solid var(--kw-border);
}
