/* Layout additions; existing Source/3B fonts and colours remain in use. */
.pf-home { padding-block: 48px 64px; }
.pf-home * { box-sizing: border-box; }
.pf-home a { color: inherit; text-decoration: none; }
.pf-intro { max-width: 860px; margin-bottom: 48px; }
.pf-kicker { margin: 0 0 12px; font-size: 12px; font-weight: 650; line-height: 1.5; letter-spacing: .075em; text-transform: uppercase; }
.pf-intro h1 { margin: 0; font-size: clamp(36px,4.8vw,66px); font-weight: 725; line-height: 1.05; letter-spacing: -.045em; }
.pf-intro-text { max-width: 720px; margin: 22px 0 0; font-size: 19px; line-height: 1.65; opacity: .78; }
.pf-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.pf-home .pf-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 13px 21px; border: 1px solid var(--color-border); border-radius: 5px; font-size: 15px; font-weight: 600; line-height: 1.4; }
.pf-home .pf-button-primary { border-color: var(--ghost-accent-color); background: var(--ghost-accent-color); color: #fff; }
.pf-home :is(a,button):focus-visible,.pf-reading-links a:focus-visible,.pf-toc :is(a,summary):focus-visible { outline: 3px solid var(--ghost-accent-color); outline-offset: 4px; }
.pf-feature { margin-bottom: 58px; }
.pf-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 8px; }
.pf-card-image { display: flex; aspect-ratio: 3/2; align-items: center; justify-content: center; background: rgba(127,127,127,.055); overflow: hidden; }
.pf-card-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.pf-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 23px; }
.pf-date { display: block; margin-bottom: 10px; font-size: 12px; line-height: 1.4; opacity: .65; }
.pf-access { display: inline-block; margin-bottom: 10px; padding: 4px 7px; border: 1px solid var(--color-border); border-radius: 3px; font-size: 11px; line-height: 1.4; }
.pf-card h3 { margin: 0; font-size: 22px; font-weight: 650; line-height: 1.23; letter-spacing: -.02em; overflow-wrap: anywhere; }
.pf-card h2 { margin: 0; font-size: clamp(25px,2.7vw,39px); font-weight: 725; line-height: 1.12; letter-spacing: -.025em; }
.pf-card-excerpt { margin: 15px 0 18px; font-size: 15px; line-height: 1.6; opacity: .77; }
.pf-card-author { margin-top: auto; padding-top: 3px; font-size: 12px; line-height: 1.5; opacity: .68; }
.pf-home .pf-text-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--ghost-accent-color); font-size: 14px; font-weight: 600; line-height: 1.4; }
.pf-card-body .pf-text-link { padding-top: 11px; }
.pf-card h2 a:hover,.pf-card h3 a:hover { color: var(--ghost-accent-color); }
.pf-card-featured { display: grid; grid-template-columns: 1.15fr 1fr; }
.pf-card-featured .pf-card-image { height: 100%; min-height: 350px; aspect-ratio: auto; }
.pf-card-featured .pf-card-body { justify-content: center; padding: clamp(25px,3.8vw,54px); }
.pf-card-featured .pf-card-excerpt { font-size: 17px; }
.pf-card-featured .pf-card-author { margin-top: 0; }
.pf-section { padding-top: 34px; margin-top: 48px; border-top: 1px solid var(--color-border); }
.pf-section-heading { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 16px 28px; margin-bottom: 24px; }
.pf-section-heading h2 { margin: 0; font-size: clamp(27px,2.5vw,35px); font-weight: 650; line-height: 1.15; letter-spacing: -.025em; }
.pf-section-heading .pf-kicker { margin-bottom: 8px; opacity: .68; }
.pf-section-heading p:not(.pf-kicker) { max-width: 660px; margin: 12px 0 0; font-size: 16px; line-height: 1.6; opacity: .75; }
.pf-article-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; }
.pf-atlas { margin-bottom: 10px; }
.pf-species-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.pf-species-card { min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 7px; }
.pf-species-image { display: flex; aspect-ratio: 4/3; align-items: center; justify-content: center; background: rgba(127,127,127,.055); }
.pf-species-image img { width: 100%; height: 100%; object-fit: contain; }
.pf-species-card h3 { margin: 0; padding: 17px; font-size: 19px; font-weight: 650; line-height: 1.3; overflow-wrap: anywhere; }
.pf-species-card:hover h3 { color: var(--ghost-accent-color); }
.pf-toc { margin-block: 0 28px; padding: 19px 22px; border: 1px solid var(--color-border); border-radius: 7px; font-family: var(--gh-font-body,var(--font-sans)); }
.pf-toc summary { min-height: 30px; cursor: pointer; font-size: 16px; font-weight: 600; line-height: 1.5; }
.pf-toc nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 24px; margin-top: 12px; }
.pf-toc nav a { display: block; padding-block: 7px; color: inherit; font-size: 14px; line-height: 1.45; text-decoration: none; }
.pf-toc nav a:hover { color: var(--ghost-accent-color); }
.post-template .gh-content :is(h2,h3)[id] { scroll-margin-top: 95px; }
.pf-reading-links { margin-block: 42px 28px; }
.pf-reading-inner { grid-column: main-start/main-end; padding-top: 25px; border-top: 1px solid var(--color-border); }
.pf-reading-inner h2 { margin: 0 0 18px; font-size: 25px; font-weight: 650; line-height: 1.25; }
.pf-reading-links-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.pf-reading-links-grid a { display: flex; align-items: center; justify-content: space-between; gap: 15px; min-width: 0; min-height: 48px; padding: 13px 16px; border: 1px solid var(--color-border); border-radius: 5px; color: inherit; font-size: 15px; line-height: 1.45; text-decoration: none; overflow-wrap: anywhere; }
.pf-reading-links-grid a::after { content: '\2192'; flex-shrink: 0; color: var(--ghost-accent-color); }
.pf-reading-links-grid a:hover { border-color: var(--ghost-accent-color); }
.pf-related-editorials .pf-reading-links-grid { grid-template-columns: minmax(0,1fr); }
.pf-reading-all { display: inline-flex; align-items: center; min-height: 44px; margin-top: 13px; color: var(--ghost-accent-color); font-size: 14px; font-weight: 600; }
.gh-footer-logo { min-width: 0; max-width: 100%; }
.gh-footer-logo img { max-width: 100%; }
@media (min-width: 992px) {
    .gh-navigation.is-middle-logo .gh-navigation-menu { margin-right: 20px; }
    .gh-navigation .nav { gap: 20px; }
}
@media (max-width: 920px) {
    .pf-article-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
    .pf-species-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .pf-card-featured { grid-template-columns: minmax(0,1fr); }
    .pf-card-featured .pf-card-image { min-height: 0; height: auto; aspect-ratio: 3/2; }
    .pf-card-featured .pf-card-body { padding: 30px; }
}
@media (max-width: 580px) {
    .pf-home { padding-block: 30px 38px; }
    .pf-intro { margin-bottom: 30px; }
    .pf-intro h1 { font-size: 39px; }
    .pf-intro-text { margin-top: 18px; font-size: 17px; }
    .pf-actions { gap: 10px; margin-top: 22px; }
    .pf-home .pf-button { flex: 1 1 auto; padding-inline: 15px; font-size: 14px; }
    .pf-card-featured .pf-card-body { padding: 23px; }
    .pf-card-featured .pf-card-excerpt { font-size: 15px; }
    .pf-section { margin-top: 35px; padding-top: 26px; }
    .pf-section-heading { gap: 9px; margin-bottom: 19px; }
    .pf-feature { margin-bottom: 35px; }
    .pf-article-grid { grid-template-columns: minmax(0,1fr); }
    .pf-card-body { padding: 21px; }
    .pf-species-grid { gap: 12px; }
    .pf-species-card h3 { padding: 13px; font-size: 16px; }
    .pf-toc { padding: 16px 18px; }
    .pf-toc nav,.pf-reading-links-grid { grid-template-columns: minmax(0,1fr); }
    .pf-reading-inner h2 { font-size: 23px; }
}

/* The complete chronological feed remains readable when JavaScript is unavailable. */
#pf-editorial-feed > .pf-card-featured { grid-column: 1 / -1; }
.pf-home [hidden] { display: none !important; }
.pf-feed-controls { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 25px; }
.pf-feed-status { margin: 0; font-size: 14px; line-height: 1.5; opacity: .7; }
.pf-feed-controls button { background: transparent; color: inherit; font-family: inherit; cursor: pointer; }
