/* ==========================================================
   Linen: quiet luxury. White space, Garamond serif,
   letter-spaced wordmark and labels, tall photos.
   Layered on the Classic theme styles.
   The page colour (--li-paper) is set in partials/fonts.php.
   ========================================================== */

[data-bs-theme="light"] .theme-linen {
    --li-bg: var(--li-paper);
    --li-text: #111111;
    --li-soft: #3d3d3d;
    --li-muted: #6f6f6f;
    --li-line: #e2e0dc;
    --li-empty: #ecebe8;
}
[data-bs-theme="dark"] .theme-linen {
    --li-bg: #121212;
    --li-text: #f1efea;
    --li-soft: #cfccc6;
    --li-muted: #8f8c86;
    --li-line: #2a2a2a;
    --li-empty: #1e1e1e;
}
.theme-linen {
    --bs-body-bg: var(--li-bg);
    --bs-body-color: var(--li-text);
    --bs-emphasis-color: var(--li-text);
    --bs-secondary-color: var(--li-muted);
    --bs-tertiary-bg: var(--li-bg);
    --bs-border-color: var(--li-line);
    background: var(--li-bg);
    color: var(--li-text);
    line-height: 1.55;
}
:where(.theme-linen) a { color: var(--li-text); }
.theme-linen .text-body-secondary { color: var(--li-muted) !important; }
.theme-linen h1, .theme-linen h2, .theme-linen h3, .theme-linen h4 { color: var(--li-text); font-weight: 400; }

/* ---- Header: letter-spaced wordmark, tiny spaced menu ------------------ */
.theme-linen .site-header { background: var(--li-bg); border-bottom: 0 !important; }
.theme-linen .site-header > .container { padding-top: 1.4rem !important; padding-bottom: 1.4rem !important; max-width: none; padding-left: 24px; padding-right: 24px; }
.theme-linen .site-header .navbar-brand { font-weight: 400 !important; font-size: 1.7rem !important; letter-spacing: .32em; text-transform: uppercase; color: var(--li-text) !important; }
.theme-linen .site-header .navbar-brand i { font-size: 1.1em; }
.theme-linen .site-header .nav { --bs-nav-underline-border-width: 0; gap: 2rem !important; }
.theme-linen .site-header .nav-link { font-size: .68rem !important; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--li-text) !important; padding: .25rem 0; border: 0 !important; }
.theme-linen .site-header .nav-link:hover, .theme-linen .site-header .nav-link.active { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.theme-linen.header-split .site-header + .mb-4 { display: none; }
.theme-linen.sticky-header .site-header.is-scrolled { box-shadow: 0 1px 0 var(--li-line); }

/* ---- Labels ------------------------------------------------------- */
.li-label { font-size: .68rem; font-weight: 400; letter-spacing: .24em; text-transform: uppercase; color: var(--li-muted); margin: 0 0 .9rem; }
.li-read { display: inline-block; font-family: 'Jost', system-ui, sans-serif; font-size: .7rem; letter-spacing: .24em; text-transform: uppercase; color: var(--li-text) !important; text-decoration: none; padding-bottom: .35rem; border-bottom: 1px solid currentColor; }
.li-read:hover { opacity: .6; }

/* ---- Issue title + cover story -------------------------------------- */
.li-issue { padding: 3.5rem 0 3rem; }
.li-issue-title { font-size: clamp(1.8rem, 1.2rem + 1.8vw, 2.6rem); font-weight: 500 !important; letter-spacing: .02em; line-height: 1.15; text-transform: uppercase; max-width: 760px; margin: 0 auto; }
.li-cover { text-align: center; padding-bottom: 6rem; }
.li-cover-link { display: block; max-width: 720px; margin: 0 auto; }
.li-cover-img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.li-cover-caption { max-width: 620px; margin: 2.5rem auto 0; }
.li-cover-title { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.2rem); line-height: 1.1; margin-bottom: 1.2rem; }
.li-cover-title a { text-decoration: none; }
.li-cover-summary { font-size: 1.2rem; color: var(--li-soft); font-style: italic; margin-bottom: 1.6rem; }

/* ---- Gallery: two calm columns, the right one set lower ---------------- */
.li-section { padding-bottom: 4rem; }
.li-section-label { margin-bottom: 3.5rem; padding-top: 3.5rem; border-top: 1px solid var(--li-line); }
.li-gallery { --bs-gutter-x: clamp(2rem, 6vw, 6rem); --bs-gutter-y: 0; max-width: 1040px; margin: 0 auto; }
.li-gallery > .col { margin-bottom: 5.5rem; }
@media (min-width: 768px) { .li-gallery > .col:nth-child(even) { padding-top: 7rem; } }
.li-card { text-align: left; }
.li-thumb { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; margin-bottom: 1.6rem; transition: opacity .3s ease; }
.li-thumb-empty, .li-card .li-thumb.li-thumb-empty { background: var(--li-empty); }
.li-card:hover .li-thumb { opacity: .85; }
.li-title { font-size: clamp(1.6rem, 1.2rem + 1vw, 2.1rem); line-height: 1.15; margin-bottom: .8rem; }
.li-title a { text-decoration: none; }
.li-card:hover .li-title a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.li-summary { font-size: 1.1rem; color: var(--li-soft); margin: 0; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.li-more { padding-top: 1rem; }

/* ---- Buttons: text with a line underneath ---------------------------- */
.theme-linen .btn { border-radius: 0; font-size: .7rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 400; }
.theme-linen .btn-primary { --bs-btn-bg: var(--li-text); --bs-btn-border-color: var(--li-text); --bs-btn-color: var(--li-bg); --bs-btn-hover-bg: var(--li-soft); --bs-btn-hover-border-color: var(--li-soft); --bs-btn-hover-color: var(--li-bg); }
.theme-linen .btn-outline-primary, .theme-linen .btn-outline-secondary { --bs-btn-color: var(--li-text); --bs-btn-border-color: var(--li-text); --bs-btn-hover-bg: var(--li-text); --bs-btn-hover-color: var(--li-bg); --bs-btn-hover-border-color: var(--li-text); border-radius: 0 !important; }
.theme-linen .floating-btn { letter-spacing: 0; }
.theme-linen .floating-btn.btn-primary { background: var(--li-text); border-color: var(--li-text); color: var(--li-bg); }
.theme-linen .floating-btn.btn-secondary { --bs-btn-bg: var(--li-bg); --bs-btn-border-color: var(--li-line); --bs-btn-color: var(--li-text); }

/* ---- Page headers (articles, categories, search, article) ------------- */
.theme-linen main > .container > header.card {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 4rem 0 2.5rem !important;
}
.theme-linen main > .container > header.card h1 { font-weight: 400 !important; font-size: clamp(2.4rem, 1.4rem + 3.6vw, 4.2rem); line-height: 1.05; margin-bottom: 1.5rem; }
.theme-linen main > .container > header.card .fs-4 { font-size: 1.35rem !important; font-style: italic; color: var(--li-soft); max-width: 720px; margin-left: auto; margin-right: auto; }
.theme-linen main > .container > header.card .lead { font-family: 'Jost', system-ui, sans-serif; font-size: .7rem; letter-spacing: .22em; text-transform: uppercase; color: var(--li-muted); }
.theme-linen .badge { font-weight: 400; font-size: .66rem !important; letter-spacing: .22em; text-transform: uppercase; padding: 0 .6rem; border-radius: 0; }
.theme-linen .badge.bg-primary, .theme-linen .badge.bg-secondary { background: transparent !important; color: var(--li-muted) !important; }
.theme-linen a.badge.bg-primary { color: var(--li-text) !important; }
.theme-linen .badge .bi { display: none; }
.theme-linen .byline { font-family: 'Jost', system-ui, sans-serif; font-size: .75rem !important; letter-spacing: .12em; text-transform: uppercase; }
.theme-linen .breadcrumb { font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; --bs-breadcrumb-divider-color: var(--li-muted); --bs-breadcrumb-item-active-color: var(--li-muted); }
.theme-linen .breadcrumb a { color: var(--li-muted); text-decoration: none; }
/* List pages: the same two calm columns */
@media (min-width: 768px) { .theme-linen main .row.row-cols-md-2.row-cols-xl-3 > .col { width: 50%; } }
.theme-linen main .row.row-cols-md-2.row-cols-xl-3 { --bs-gutter-x: clamp(2rem, 6vw, 6rem); --bs-gutter-y: 4.5rem; max-width: 1040px; margin-left: auto; margin-right: auto; }

/* ---- Article text ---------------------------------------------------- */
.theme-linen .content-body { font-size: 1.15em; line-height: 1.7; color: var(--li-soft); }
.theme-linen .content-body > p:first-of-type::first-letter { float: left; font-size: 4.2em; line-height: .85; padding: .08em .1em 0 0; color: var(--li-text); }
.theme-linen .content-body h2 { font-size: 2.1rem; font-weight: 500; margin-top: 3rem; color: var(--li-text); }
.theme-linen .content-body h3 { font-size: 1.55rem; font-weight: 500; margin-top: 2.2rem; color: var(--li-text); }
.theme-linen .content-body a { color: var(--li-text); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.theme-linen .content-body blockquote { border: 0 !important; text-align: center; font-size: 1.6em; font-style: italic; line-height: 1.3; color: var(--li-text); padding: 1.5rem 0; margin: 2.5rem 0; border-top: 1px solid var(--li-line) !important; border-bottom: 1px solid var(--li-line) !important; }
.theme-linen .content-body th { font-weight: 500; }
.theme-linen .content-body td, .theme-linen .content-body th { border-color: var(--li-line) !important; }

/* Boxes (table of contents, sidebar, related) */
[data-bs-theme] .theme-linen .card { background: var(--li-bg) !important; border: 0 !important; border-top: 1px solid var(--li-line) !important; border-bottom: 1px solid var(--li-line) !important; box-shadow: none !important; border-radius: 0 !important; }
[data-bs-theme] .theme-linen .bg-body-tertiary { background: var(--li-bg) !important; }
.theme-linen .card-header { background: transparent; border-color: var(--li-line); font-family: 'Jost', system-ui, sans-serif; font-size: .7rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 400 !important; }
.theme-linen .list-group { --bs-list-group-bg: transparent; --bs-list-group-border-color: var(--li-line); --bs-list-group-color: var(--li-text); --bs-list-group-action-hover-bg: transparent; }
.theme-linen .badge.rounded-pill.text-bg-secondary { background: transparent !important; color: var(--li-muted) !important; letter-spacing: 0; }

/* ---- Forms, pagination ------------------------------------------ */
.theme-linen .form-control, .theme-linen .form-select { border-radius: 0; border: 0; border-bottom: 1px solid var(--li-text); background: transparent; color: var(--li-text); padding-left: 0; }
.theme-linen .form-control:focus { box-shadow: none; }
.theme-linen .pagination { --bs-pagination-color: var(--li-muted); --bs-pagination-bg: transparent; --bs-pagination-border-color: transparent; --bs-pagination-hover-bg: transparent; --bs-pagination-hover-color: var(--li-text); --bs-pagination-active-bg: transparent; --bs-pagination-active-color: var(--li-text); --bs-pagination-active-border-color: var(--li-text); font-family: 'Jost', system-ui, sans-serif; font-size: .8rem; letter-spacing: .1em; }
.theme-linen .page-link { border-radius: 0 !important; border-width: 0 0 1px !important; }

/* ---- Footer: calm and centred ------------------------------------- */
.theme-linen .site-footer { background: var(--li-bg); border-top: 1px solid var(--li-line) !important; margin-top: 3rem !important; padding-top: 3rem !important; }
.theme-linen .site-footer .nav-link { font-size: .66rem; letter-spacing: .22em; text-transform: uppercase; color: var(--li-text) !important; }
.theme-linen .site-footer a.fs-4 { font-size: 1.3rem !important; letter-spacing: .32em; text-transform: uppercase; }
.theme-linen .site-footer .small { font-family: 'Jost', system-ui, sans-serif; font-size: .72rem; letter-spacing: .06em; }

.theme-linen .fc-ad-placeholder { background: var(--li-empty); border-radius: 0; }

@media (max-width: 767.98px) {
    .theme-linen .site-header .navbar-brand { font-size: 1.3rem !important; letter-spacing: .24em; }
    .theme-linen .site-header .nav { gap: 1.1rem !important; }
    .li-cover { padding-bottom: 4rem; }
    .li-gallery > .col { margin-bottom: 3.5rem; }
}
