/*
Theme Name: Classic Journal
Version: 2.1.0
Requires at least: 6.6
Requires PHP: 8.2
Text Domain: classic-journal
License: GPL-2.0-or-later
*/
:root {
    --newsprint:#f2eee3;
    --black:#161616;
    --red:#8d1f19;
    --line:#999184;
    --sheet:78rem;
}
* {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth;
}
body {
    margin:0;
    color:var(--black);
    background:var(--newsprint);
    font:1rem/1.55 Georgia,serif;
}
a {
    color:inherit;
    text-decoration-color:var(--red);
    text-underline-offset:.18em;
}
a:focus-visible {
    outline:3px double var(--red);
    outline-offset:4px;
}
img {
    max-width:100%;
    height:auto;
}
.skip-link {
    position:fixed;
    top:-6rem;
    left:1rem;
    z-index:10;
    padding:.75rem;
    background:var(--black);
    color:white;
}
.skip-link:focus {
    top:1rem;
}
.masthead {
    width:min(100% - 2rem,var(--sheet));
    margin:auto;
    text-align:center;
    border-bottom:5px double var(--black);
}
.dateline {
    display:flex;
    justify-content:space-between;
    padding:.5rem 0;
    border-bottom:1px solid var(--black);
    font:700 .72rem system-ui,sans-serif;
    text-transform:uppercase;
    letter-spacing:.1em;
}
.newspaper-name {
    display:block;
    padding:.3rem;
    font-size:clamp(2.5rem,7vw,6rem);
    font-weight:900;
    line-height:1;
    text-decoration:none;
}
.masthead nav {
    border-top:1px solid var(--black);
}
.menu {
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:1.5rem;
    list-style:none;
    margin:0;
    padding:.6rem;
    font:700 .78rem system-ui,sans-serif;
    text-transform:uppercase;
}
.front-edition,.edition-archive,.journal-page,.directory-page {
    width:min(100% - 2rem,var(--sheet));
    margin:auto;
    padding:1.5rem 0 5rem;
}
.edition-banner {
    display:flex;
    justify-content:space-between;
    border-bottom:1px solid var(--black);
    padding:.4rem 0;
    font:700 .72rem system-ui,sans-serif;
    text-transform:uppercase;
}
.top-story {
    display:grid;
    grid-template-columns:1.05fr 1.4fr;
    gap:2rem;
    padding:2rem 0;
    border-bottom:3px solid var(--black);
}
h1,h2,h3 {
    line-height:1.02;
}
h1 {
    margin:.2em 0;
    font-size:clamp(2.6rem,6vw,5.4rem);
}
.deck {
    font-size:1.3rem;
    line-height:1.35;
}
.folio,.byline {
    font:700 .72rem system-ui,sans-serif;
    text-transform:uppercase;
    letter-spacing:.12em;
}
.front-photo img,.directory-lead img {
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
    filter:contrast(1.04);
}
figcaption {
    padding:.4rem 0;
    border-bottom:1px solid var(--line);
    font:.78rem system-ui,sans-serif;
}
.issue-columns {
    display:grid;
    grid-template-columns:1fr 2fr;
    gap:2rem;
    padding:2rem 0;
    border-bottom:3px double var(--black);
}
.editorial-column {
    padding-right:2rem;
    border-right:1px solid var(--line);
}
.report-copy p:first-child::first-letter {
    float:left;
    font-size:4rem;
    line-height:.8;
    padding-right:.1em;
}
.news-desk {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.5rem;
}
.news-desk > h2 {
    grid-column:1/-1;
    border-bottom:2px solid var(--black);
}
.journal-story {
    break-inside:avoid;
    border-bottom:1px solid var(--line);
    padding-bottom:1rem;
}
.journal-story h2,.journal-story h3 {
    margin:.25rem 0;
}
.story-image img {
    width:100%;
    aspect-ratio:3/2;
    object-fit:cover;
}
.directory-desk,.reader-service,.picture-page {
    padding:2.5rem 0;
    border-bottom:4px double var(--black);
}
.directory-desk > header,.reader-service > header {
    display:flex;
    gap:1rem;
    align-items:center;
}
.section-mark {
    display:grid;
    place-items:center;
    width:3rem;
    height:3rem;
    background:var(--black);
    color:var(--newsprint);
    font-size:1.5rem;
}
.directory-columns {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.5rem;
}
.directory-note {
    padding:1.25rem;
    border:1px solid var(--line);
}
.directory-note > img {
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
    margin-bottom:1rem;
}
.directory-note h3,.directory-note h2 {
    margin:.2rem 0;
}
.seal {
    display:inline-block;
    color:var(--red);
    border:2px solid var(--red);
    padding:.15rem .4rem;
    font:700 .7rem system-ui,sans-serif;
    text-transform:uppercase;
}
.picture-page {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1rem;
}
.picture-page > h2 {
    grid-column:1/-1;
}
.service-columns {
    columns:3 16rem;
    column-gap:2rem;
}
.service-columns article {
    break-inside:avoid;
    padding-top:.5rem;
    border-top:1px solid var(--line);
}
.story-columns {
    columns:3 18rem;
    column-gap:2rem;
}
.story-columns .journal-story {
    margin-bottom:2rem;
}
.page-flag {
    max-width:60rem;
    margin:2rem 0;
    border-bottom:4px double var(--black);
}
.article-copy,.directory-profile {
    max-width:48rem;
    margin:auto;
}
.article-copy > * {
    max-width:68ch;
}
.directory-profile {
    max-width:64rem;
}
.directory-filing {
    margin-top:2rem;
    border-top:1px solid var(--line);
    font-family:system-ui,sans-serif;
}
.edition-footer {
    display:grid;
    grid-template-columns:2fr 1fr auto;
    gap:2rem;
    width:min(100% - 2rem,var(--sheet));
    margin:auto;
    padding:2rem 0;
    border-top:5px double var(--black);
}
.nav-links {
    display:flex;
    justify-content:space-between;
    gap:1rem;
    margin-top:2rem;
}
@media(max-width:48rem){
    .top-story,.issue-columns {
        grid-template-columns:1fr;
    }
    .editorial-column {
        border-right:0;
        padding-right:0;
    }
    .news-desk,.directory-columns {
        grid-template-columns:1fr;
    }
    .picture-page {
        grid-template-columns:1fr 1fr;
    }
    .edition-footer {
        grid-template-columns:1fr;
    }
}
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after {
        scroll-behavior:auto!important;
        animation:none!important;
        transition:none!important;
    }
}
@media(forced-colors:active){
    .seal,.directory-note {
        border-color:CanvasText;
    }
}
