/* Presentation tokens reuse the editor palette and content widths in theme.json. */
:root {
    --journal-reading-width: 45rem;
    --journal-paper: var(--wp--preset--color--paper);
    --journal-surface: var(--wp--preset--color--surface);
    --journal-ink: var(--wp--preset--color--ink);
    --journal-teal: var(--wp--preset--color--teal);
    --journal-gold: var(--wp--preset--color--gold);
    --journal-rule: var(--wp--preset--color--border);
    --journal-muted: #52616b;
    --journal-tint: #eef4f0;
    --journal-hover: var(--wp--preset--color--teal-hover);
    --journal-footer-hover: var(--wp--preset--color--teal-on-ink);
    --journal-space-8: var(--wp--preset--spacing--8);
    --journal-space-12: var(--wp--preset--spacing--12);
    --journal-space-16: var(--wp--preset--spacing--16);
    --journal-space-24: var(--wp--preset--spacing--24);
    --journal-space-32: var(--wp--preset--spacing--32);
    --journal-space-48: var(--wp--preset--spacing--48);
    --journal-space-64: var(--wp--preset--spacing--64);
    --journal-main-inset: 1.25rem;
    --journal-main-width: calc(var(--wp--style--global--wide-size) - (2 * var(--journal-main-inset)));
    --journal-main-fluid-width: calc(100% - (2 * var(--journal-main-inset)));
    --journal-title-page: clamp(1.75rem, 1.25rem + 1vw, 2.125rem);
    --journal-title-article: clamp(2rem, 1.375rem + 1.25vw, 2.5rem);
}
html { scroll-behavior: smooth; }
body { margin: 0; }
* { box-sizing: border-box; }
a {
    text-decoration: none;
    text-underline-offset: .22em;
    transition: color .16s ease;
}
a:hover { color: var(--journal-hover); text-decoration: none; }
/* Prose links remain identifiable without depending on colour or pointer hover. */
.wp-block-post-content a:not(.wp-element-button):not(.wp-block-button__link):not(:where(.wp-block-post-title a, .wp-block-post-terms a, .wp-block-post-excerpt__more-link, .wp-block-read-more, .journal-card-read a, .journal-meta-author a, .wp-block-query-pagination a)) {
    text-decoration: underline;
}
.wp-block-post-content .journal-toc a { text-decoration: none; }
a, button { touch-action: manipulation; }
:is(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid var(--journal-teal);
    outline-offset: 4px;
}

/* Header identity keeps its space without forcing the menu onto a second row. */
.journal-header, .journal-footer {
    max-width: var(--wp--style--global--wide-size);
    margin-inline: auto;
}
.journal-header {
    padding-block: 1.15rem;
    border-bottom: 1px solid var(--journal-rule);
    gap: 1.5rem;
    align-items: center;
}
.journal-brand { max-width: min(65%, 560px); min-width: 0; }
.wp-block-site-title { font-size: 1.35rem; font-weight: 700; }
.wp-block-site-title a { text-decoration: none; color: var(--journal-ink); }
.wp-block-site-title a:hover { color: var(--journal-hover); }
.journal-brand .wp-block-site-title {
    font-size: clamp(1.05rem, 2vw, 1.3rem);
    line-height: 1.6;
    margin: 0;
}
.journal-brand:has(.custom-logo) .wp-block-site-title { display: none; }
.journal-brand .wp-block-site-logo, .journal-header > .wp-block-navigation { margin: 0; }
.journal-header > .wp-block-navigation { flex-shrink: 0; }
.journal-header .wp-block-navigation__container { gap: 1.25rem; }
.journal-header .wp-block-navigation .wp-block-navigation-item__content {
    font-family: var(--wp--preset--font-family--body);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: normal;
    color: #263238;
    padding: .4rem .6rem;
    min-height: 44px;
    background-color: transparent;
    border-radius: 6px;
    text-decoration: none;
    transition: color .16s ease, background-color .16s ease;
}
.journal-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.journal-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.journal-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.journal-header .wp-block-navigation .wp-block-navigation-item__content[aria-current='page'] {
    color: #246B65;
    background-color: #E6F1EF;
    text-decoration: none;
}
.journal-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
    outline: 3px solid #246B65;
    outline-offset: 3px;
}
.journal-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.journal-header .wp-block-navigation .wp-block-navigation-item__content[aria-current='page'] { font-weight: 600; }
.journal-header .wp-block-navigation__submenu-container { gap: .2rem; }
.journal-brand .custom-logo {
    display: block;
    width: auto;
    height: auto;
    max-width: 220px;
    max-height: 76px;
    object-fit: contain;
}
.wp-block-navigation .wp-block-navigation-item__content { font-size: 1rem; padding: .5rem .2rem; }
.wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--journal-hover); text-decoration: none; }
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close,
.wp-block-navigation-submenu__toggle {
    min-width: 44px;
    min-height: 44px;
    justify-content: center;
    align-items: center;
}
.wp-block-navigation .wp-block-navigation__submenu-container {
    background: var(--journal-surface);
    color: var(--journal-ink);
    border: 1px solid var(--journal-rule);
    padding: .5rem;
    border-radius: 8px;
    box-shadow: 0 12px 32px #26323815;
    min-width: 220px;
}
.wp-block-navigation .wp-block-navigation__submenu-container :is(a, button) { color: var(--journal-ink); }

/* Shared page hierarchy and editorial introduction. */
.journal-main { width: var(--journal-main-fluid-width); max-width: var(--journal-main-width); padding-block: clamp(2rem, 5vw, 4rem); }
/* Homepage boundaries each own one gap; do not add WordPress root margins to main padding. */
.journal-home-main {
    max-width: var(--journal-main-width);
    margin: 0 auto;
    padding-block: var(--journal-space-32) 0;
    --journal-home-section-gap: var(--journal-space-48);
    --journal-intro-padding: var(--journal-space-48);
}
.journal-home-main > .journal-home-posts { margin-block: var(--journal-home-section-gap) 0; }
.journal-home-main + footer { margin-block-start: var(--journal-home-section-gap, var(--journal-space-48)); }
.journal-home-main + footer .journal-footer { margin-block-start: 0; }
.journal-main:not(.journal-article-main) > h1:not(.journal-title-banner) {
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--journal-rule);
    margin-bottom: 2rem;
    line-height: 1.55;
    font-size: clamp(2rem, 4.5vw, 3rem);
}
.journal-intro {
    padding: var(--journal-intro-padding, var(--journal-space-48));
    border: 1px solid var(--journal-rule);
    border-top: 4px solid var(--journal-gold);
    background: linear-gradient(120deg, var(--journal-surface) 65%, var(--journal-tint));
    border-radius: 12px;
    margin-block: 0;
}
.journal-intro h1 {
    font-size: clamp(2rem, 4.5vw, 3.4rem);
    line-height: 1.55;
    margin-block: var(--journal-space-12) var(--journal-space-16);
    max-width: 850px;
    letter-spacing: -.025em;
}
.journal-intro > .journal-label { margin: 0; }
.journal-intro .wp-block-post-content {
    display: grid;
    grid-template-columns: minmax(0, 720px);
    gap: var(--journal-space-16) var(--journal-space-32);
    margin: 0;
}
.journal-intro .wp-block-post-content > * {
    min-width: 0;
    max-width: 720px;
    margin: 0;
}
.journal-intro .wp-block-post-content:has(> .wp-block-image:first-child) {
    grid-template-columns: minmax(0, 1fr) 160px;
}
.journal-intro .wp-block-post-content:has(> .wp-block-image:first-child) > * { grid-column: 1; }
.journal-intro .wp-block-post-content > .wp-block-image:first-child {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: start;
    justify-self: center;
    float: none;
}
.journal-label { font-size: .85rem; letter-spacing: .03em; font-weight: 650; line-height: 1.8; color: var(--journal-teal); }
.journal-profile-photo {
    width: 112px;
    height: 112px;
    object-fit: cover;
    border-radius: 50%;
    border: 4px solid var(--journal-surface);
    box-shadow: 0 0 0 1px var(--journal-rule);
}
.journal-owner-portrait .journal-profile-photo { width: 160px; height: 160px; }

/* One card component serves Home, archives, search and related articles. */
.journal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.journal-grid, .wp-block-post-template.is-layout-grid { gap: var(--journal-space-24); }
.journal-grid > * { min-width: 0; }
.journal-meta { font-size: .9rem; color: var(--journal-muted); line-height: 1.9; }
.journal-home-posts section + section { margin-top: var(--journal-home-section-gap, var(--journal-space-48)); }
.journal-home-posts h2 { font-size: clamp(1.45rem, 3vw, 1.85rem); line-height: 1.6; margin: 0 0 var(--journal-space-24); }
.journal-browse { display: flex; gap: 1rem; flex-wrap: wrap; margin-block: 1.5rem; }
.journal-browse a { border: 1px solid var(--journal-rule); border-radius: 100px; padding: .4rem .85rem; font-size: .9rem; background: var(--journal-surface); }

/* Listing flow owns the full wide container; reading-width constraints belong to articles. */
.journal-listing-main {
    max-width: var(--journal-main-width);
    margin: 0 auto;
    padding-block: var(--journal-space-32) 0;
    --journal-listing-gap: var(--journal-space-24);
    display: grid;
    gap: var(--journal-listing-gap);
}
.journal-listing-main > * { margin: 0; min-width: 0; }
.journal-listing-main + footer { margin-block-start: var(--journal-space-32); }
.journal-listing-main + footer .journal-footer { margin-block-start: 0; }
.journal-listing-main .wp-block-query-no-results > :first-child { margin-top: 0; }
.journal-listing-main .wp-block-query-no-results > :last-child { margin-bottom: 0; }

.journal-listing-tools { display: grid; gap: var(--journal-listing-gap); }
.journal-listing-main .journal-browse {
    margin: 0;
    gap: var(--journal-space-8) var(--journal-space-12);
    justify-content: flex-start;
    align-items: center;
}
.journal-listing-main .journal-browse a { min-height: 44px; display: inline-flex; align-items: center; }
.journal-listing-main .journal-browse a[aria-current='page'] { background: var(--journal-tint); border-color: var(--journal-teal); }
.journal-listing-main .journal-listing-search { margin: 0; }
.journal-listing-search .wp-block-search__label { display: block; margin-bottom: var(--journal-space-8); font-size: 1rem; line-height: 1.7; }
.journal-listing-search .wp-block-search__inside-wrapper { display: flex; align-items: center; gap: var(--journal-space-12); width: 100%; max-width: 100%; }
.journal-listing-search .wp-block-search__input,
.journal-listing-search .wp-block-search__button {
    min-height: 48px;
    padding: var(--journal-space-8) var(--journal-space-12);
    margin: 0;
    font-size: 1rem;
    line-height: 1.875;
}
.journal-listing-search .wp-block-search__input { flex: 1; width: 100%; min-width: 0; }
.journal-listing-search .wp-block-search__button { flex: 0 0 auto; cursor: pointer; white-space: nowrap; }
.journal-listing-main .wp-block-term-description > :first-child { margin-top: 0; }
.journal-listing-main .wp-block-term-description > :last-child { margin-bottom: 0; }
@media (max-width: 540px) {
    .journal-listing-main { padding-block-start: var(--journal-space-24); }
    .journal-listing-main + footer { margin-block-start: var(--journal-space-24); }
    .journal-listing-search .wp-block-search__inside-wrapper { gap: var(--journal-space-8); }
}

/* Rich article blocks retain their own scrolling containers. */
.wp-block-post-title, .wp-block-post-content, .wp-block-post-excerpt { overflow-wrap: anywhere; }
.wp-block-post-featured-image img { max-width: 100%; }
.wp-block-post-content img { height: auto; }
.wp-block-post-content :is(pre, table), .wp-block-table { max-width: 100%; overflow: auto; }
.wp-block-post-content iframe { max-width: 100%; }
.wp-block-post-content code { overflow-wrap: anywhere; }
.wp-block-post-content blockquote { border-left: 3px solid var(--journal-teal); padding-left: 1.5rem; margin-inline: 0; }
.wp-block-post-content :is(h2, h3) { margin-top: 2.5rem; }
.wp-block-post-content :is(h2, h3)[id] { scroll-margin-top: 1rem; }
.wp-block-post-content :is(h2, h3)[id]:target { outline: 2px solid var(--journal-teal); outline-offset: 4px; }
.wp-block-post-content figcaption { font-size: .9rem; color: var(--journal-muted); }
.journal-main > .wp-block-post-content { line-height: 1.95; }
.journal-deck { color: var(--journal-muted); font-size: 1.25rem; }
.journal-main > .wp-block-post-excerpt { border-left: 3px solid var(--journal-gold); padding-left: 1.2rem; }
.journal-toc { padding: 1.25rem; border: 1px solid var(--journal-rule); border-radius: 8px; background: var(--journal-surface); }
.journal-toc h2 { margin-top: 0 !important; font-size: 1.25rem; }
.journal-author { display: flex; gap: 1.5rem; align-items: flex-start; padding: 1.5rem; border: 1px solid var(--journal-rule); border-radius: 12px; background: var(--journal-surface); }
.journal-author .journal-profile-photo { width: 80px; height: 80px; flex-shrink: 0; }
.journal-author p { margin: 0 0 .65rem; }
.journal-author-name { font-size: 1.25rem; font-weight: 650; }
.journal-share { padding-block: 2rem; border-block: 1px solid var(--journal-rule); margin-block: 2rem; }
.journal-share-actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.journal-share button, .search-submit { background: var(--journal-teal); color: var(--journal-surface); border: 0; font: inherit; border-radius: 6px; cursor: pointer; }
.journal-share button { padding: .75rem 1rem; }
.journal-share input { display: block; width: 100%; max-width: 100%; padding: .7rem; font: inherit; border: 1px solid #9aa6a9; border-radius: 4px; }
.journal-share label { font-size: .9rem; }
.journal-share [role='status'] { margin-block: var(--journal-space-8); }
.journal-share-actions { margin-block-end: var(--journal-space-16); }
.search-form { display: flex; gap: .75rem; flex-wrap: wrap; margin-block: 1.5rem; }
.search-field, .search-submit { font: inherit; padding: .6rem; max-width: 100%; }
.wp-block-search__input { border: 1px solid #9aa6a9; border-radius: 4px; min-width: 0; font: inherit; }
.wp-block-search__button { font: inherit; background: var(--journal-teal); color: var(--journal-surface); border: 0; border-radius: 4px; }

/* Footer blocks remain editable; optional social navigation takes a third column. */
.journal-footer {
    width: var(--journal-main-fluid-width);
    max-width: var(--journal-main-width);
    margin-top: 2rem;
    padding: clamp(1.5rem, 4vw, 3rem);
    background: var(--journal-ink);
    color: var(--journal-paper);
    border-top: 4px solid var(--journal-gold);
    border-radius: 12px 12px 0 0;
    font-size: .95rem;
}
.journal-footer a, .journal-footer .wp-block-site-title a { color: var(--journal-paper); }
.journal-footer a:hover,
.journal-footer .wp-block-site-title a:hover,
.journal-footer .wp-block-navigation .wp-block-navigation-item__content:hover {
    color: var(--journal-footer-hover);
    text-decoration: none;
}
/* Submenus use a light surface even when placed in the dark footer. */
.journal-footer .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--journal-hover); }
.journal-footer :is(a, button):focus-visible { outline-color: #f5d69b; }
.journal-footer .wp-block-navigation__submenu-container :focus-visible { outline-color: var(--journal-teal); }
.journal-footer-grid { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(140px, 1fr); gap: 2.5rem; max-width: none !important; }
.journal-footer-grid:has(.journal-social) { grid-template-columns: minmax(0, 1.8fr) minmax(140px, 1fr) minmax(140px, 1fr); }
.journal-footer h2 { font-size: 1.05rem; margin: 0 0 .9rem; color: var(--journal-paper); line-height: 1.7; }
.journal-footer-identity .wp-block-site-title { font-size: 1.25rem; line-height: 1.7; }
.journal-footer-identity p { max-width: 480px; color: #e0e7e3; }
.journal-footer .wp-block-site-tagline { color: #f5d69b; }
.journal-footer .wp-block-navigation { margin: 0; }
.journal-footer .wp-block-navigation-item__content { font-size: .95rem; padding-block: .15rem; }
.journal-footer .wp-block-navigation__container { gap: .55rem; }
.journal-footer nav { display: block; }
.journal-footer > nav, .journal-footer > p { max-width: none !important; }
.journal-footer-bottom {
    max-width: none !important;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid #6e7a7a;
    text-align: center;
}
.journal-footer-bottom nav {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: .65rem 1.5rem;
}
.journal-footer-bottom p {
    margin: 1rem 0 0;
    font-size: .875rem;
    color: #e0e7e3;
}
.journal-social ul { list-style: none; margin: 0; padding: 0; }
.journal-social li { margin-bottom: .6rem; }
.journal-footer > p:last-child { font-size: .85rem; color: #e0e7e3; margin-bottom: 0; }

@media (max-width: 780px) {
    .journal-footer-grid, .journal-footer-grid:has(.journal-social) { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
    .journal-social { grid-column: 1 / -1; }
    .journal-brand .custom-logo { max-width: 190px; max-height: 64px; }
}
/* Override only the header's native 600px breakpoint; footer navigation stays inline. */
@media (max-width: 900px) {
    .journal-home-main { --journal-intro-padding: var(--journal-space-32); }
    .journal-header { flex-wrap: nowrap; }
    .journal-header .wp-block-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
    .journal-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
    .journal-header .wp-block-navigation .wp-block-navigation-item__content { font-size: 17.5px; }
    .journal-header .is-menu-open .wp-block-navigation__responsive-container-content { padding-inline: 1.5rem; }
}
@media (max-width: 700px) {
    .journal-intro .wp-block-post-content:has(> .wp-block-image:first-child) { grid-template-columns: minmax(0, 1fr); }
    .journal-intro .wp-block-post-content > .wp-block-image:first-child {
        grid-column: 1;
        grid-row: auto;
        justify-self: start;
    }
}
@media (max-width: 540px) {
    :root {
        --journal-main-inset: 0px;
        --journal-title-page: clamp(1.5rem, 1.25rem + 1vw, 1.75rem);
        --journal-title-article: clamp(1.625rem, 1.375rem + 1.25vw, 2rem);
    }
    .journal-brand { max-width: calc(100% - 70px); }
    .journal-brand .custom-logo { max-width: 180px; max-height: 60px; }
    .journal-header { flex-wrap: nowrap; gap: .75rem; }
    .journal-home-main {
        padding-block-start: var(--journal-space-24);
        --journal-intro-padding: var(--journal-space-24);
        --journal-home-section-gap: var(--journal-space-32);
    }
    .journal-home-main + footer { margin-block-start: var(--journal-space-32); }

    .journal-footer-grid, .journal-footer-grid:has(.journal-social) { grid-template-columns: 1fr; gap: 1.5rem; }
    .journal-author { flex-direction: column; }
    .wp-block-navigation .wp-block-navigation__submenu-container { min-width: 0; box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { animation: none !important; transition: none !important; }
}
@media print {
    .journal-header, .journal-footer, .wp-block-search, .wp-block-post-navigation-link,
    .wp-block-query-pagination, .journal-share, .journal-toc,
    .journal-main > section:has(#journal-related) { display: none !important; }
    body { background: white; color: black; font-size: 12pt; }
    .journal-main { width: 100%; max-width: 100%; padding: 0; }
    .wp-block-post-content { max-width: none; }
    img, .journal-card, .journal-author { max-width: 100%; break-inside: avoid; }
    h1, h2, h3 { break-after: avoid; }
    a { color: inherit; }
    .wp-block-post-content pre { white-space: pre-wrap; }
    .wp-block-post-content pre, .wp-block-table { overflow: visible; }
    .wp-block-post-content table { table-layout: fixed; width: 100%; overflow-wrap: anywhere; }
}

/* Shared metadata wraps each label with its icon, including long author names. */
.journal-post-meta,
.journal-main > .journal-meta:has(.journal-meta-author) {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .55rem 1.25rem;
    font-size: .9375rem;
    line-height: 1.8;
    color: var(--journal-muted);
}
.journal-meta-item {
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    max-width: 100%;
    min-width: 0;
}
.journal-meta-item :is(a, .journal-meta-label) {
    min-width: 0;
    overflow-wrap: anywhere;
}
.journal-meta-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    color: var(--journal-teal);
    align-self: flex-start;
    margin-top: .3em;
}
.journal-meta-author a { color: var(--journal-muted); text-decoration: none; }
.journal-meta-author a:hover { color: var(--journal-hover); text-decoration: none; }
.journal-card > .journal-post-meta { margin-top: auto; }
.journal-card .journal-post-meta { gap: .45rem 1rem; font-size: .875rem; }
.journal-featured .journal-post-meta { font-size: .9375rem; }
@media (max-width: 540px) {
    .journal-post-meta,
    .journal-main > .journal-meta:has(.journal-meta-author) { gap: .5rem 1rem; }
}

/* Owner-requested faint credit only; 18% opacity intentionally falls below normal text contrast. */
.journal-footer-bottom .journal-developer-credit { margin: .5rem 0 0; font-size: .8125rem; font-weight: 400; line-height: 1.7; color: #b7c1c3; opacity: .18; text-align: center; background: none; border: 0; }
