/* Grain theme — sampled from Ronneby demo #78 (Italian Restaurant).
   Warm traditional editorial: Merriweather serif headings, Open Sans body,
   crimson accent, sharp corners, small-caps section labels with a centered
   decorative rule. All rules scoped under `.theme-grain` (the class
   ThemeResolver.GetThemeCssClass() puts on `.kw-site`); the GrainHeader/Footer/
   ProductCard components carry their own scoped structural CSS. */
.theme-grain {
    --kw-accent: #e72d43;          /* crimson — trattoria red */
    --kw-accent-deep: #c31f34;
    --kw-accent-soft: #f4a6b0;
    --kw-light: #fdfbf7;           /* warm off-white page */
    --kw-dark: #1c1614;            /* warm near-black */
    --kw-dark-soft: #332924;
    --kw-text: #2b2320;
    --kw-text-muted: #8a807a;
    --kw-border: rgba(28, 22, 20, 0.10);
    --kw-border-strong: #e0d8cf;
    --kw-font: 'Open Sans', system-ui, -apple-system, sans-serif;
    --kw-font-heading: 'Merriweather', Georgia, 'Times New Roman', serif;
    --kw-radius: 0px;
    --kw-border-width: 1px;
}

/* Editorial serif rhythm — elegant headings with slightly looser line-height. */
.theme-grain h1, .theme-grain h2, .theme-grain h3 {
    font-family: var(--kw-font-heading);
    line-height: 1.3; letter-spacing: 0;
}
.theme-grain h1 { font-weight: 700; }

/* Section labels: crimson small-caps with airy letter-spacing. */
.theme-grain .fk-section-title {
    color: var(--kw-accent);
    font-family: var(--kw-font);
    font-variant: small-caps;
    text-transform: lowercase;
    letter-spacing: 0.22em;
    font-weight: 700;
}

/* Emphasis reads as italic serif where natural. */
.theme-grain em, .theme-grain .kw-lead em { font-family: var(--kw-font-heading); font-style: italic; }

/* Buttons: solid crimson, deepen on hover. */
.theme-grain .fk-btn-accent:hover { background: var(--kw-accent-deep); }

/* Block titles get a centered decorative crimson rule underneath — the
   classic editorial divider accent. */
.theme-grain .kw-block-featured-title,
.theme-grain .kw-block-products-header h2,
.theme-grain .kw-block-news-title,
.theme-grain .kw-block-categories-title {
    position: relative;
    padding-bottom: 1.25rem;
    font-family: var(--kw-font-heading);
}
.theme-grain .kw-block-featured-title::after,
.theme-grain .kw-block-products-header h2::after,
.theme-grain .kw-block-news-title::after,
.theme-grain .kw-block-categories-title::after {
    content: "";
    position: absolute; left: 0; bottom: 0;
    width: 3rem; height: 2px;
    background: var(--kw-accent);
}

/* Article route → opaque header lock (parallels Fotokrome). */
.kw-site.theme-grain:has(.kw-page--article) .gr-header {
    background: rgba(253, 251, 247, 0.98);
    border-bottom: 1px solid var(--kw-border);
}
