/*
Literary Journal Foundation — Development Foundation
Main Styles
*/

/*
|--------------------------------------------------------------------------
| Responsive breakpoint reference
|--------------------------------------------------------------------------
|
| 350px  - smaller phones
| 400px  - modern phones
| 600px  - large phones and portrait tablets
| 900px  - landscape tablets and compact layouts
| 1024px - header/navigation switches between mobile and desktop
| 1200px - standard and wide desktops
| 1800px - very large and 4K displays
|
| Breakpoints describe layout changes rather than specific devices.
|
*/

/* ==========================================================
   Colour Palette
========================================================== */

:root {

    --background: #FCFBF8;
    --paper: #FFFFFF;
    --ink: #292725;
    --rose: #B98D9D;
    --rose-dark: #9D6F80;
    --button-accent: #E09695;
    --button-hover: #C97979;
    --button-text: #FFFFFF;
    --stone: #E8E4DE;

}


/* ==========================================================
   Base
========================================================== */

*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    margin:0;

    background:var(--background);

    color:var(--ink);

    font-family:"Lora", Georgia, serif;

    font-size:18px;

    line-height:1.9;

    -webkit-font-smoothing:antialiased;

}


h1,
h2,
h3,
h4{

    font-family:"Cormorant Garamond", Georgia, serif;

    font-weight:600;

    letter-spacing:.5px;

    color:var(--ink);

}

a{

    color:var(--rose);

    text-decoration:none;

    transition:.3s ease;

}

a:hover{

    color:var(--rose-dark);

}


/* ==========================================================
   Hero
========================================================== */

.fragment-hero{

    min-height:85vh;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

    padding:100px 20px;

    position:relative;

}

.hero-inner{

    max-width:800px;

}

.fragment-hero h1{

    font-size:72px;

    margin-bottom:25px;

    letter-spacing:3px;

}

.fragment-hero p{

    font-size:22px;

    color:#666;

}


/* ==========================================================
   Button
========================================================== */

.fragment-button{

    display:inline-block;

    margin-top:35px;

    padding:15px 40px;

    border:1px solid var(--rose);

    color:var(--rose);

    background:transparent;

    text-transform:uppercase;

    letter-spacing:2px;

    font-size:14px;

    transition:.3s ease;

}

.fragment-button:hover{

    background:var(--rose);

    color:#fff;

}


/* ==========================================================
   Sections
========================================================== */

.featured-section,
.chapters-section,
.fragments-section,
.newsletter-section{

    max-width:1100px;

    margin:100px auto;

    padding:60px;

    background:var(--paper);

    border-radius:12px;

    box-shadow:0 10px 30px rgba(0,0,0,.04);

}

.featured-section h2,
.chapters-section h2,
.fragments-section h2,
.newsletter-section h2{

    text-align:center;

    font-size:42px;

    margin-bottom:40px;

}


/* ==========================================================
   Chapters
========================================================== */

.chapters-grid{

    display:grid;

    grid-template-columns:repeat(5,1fr);

    gap:30px;

}

.chapter-card{

    text-align:center;

}

.chapter-card h3{

    color:var(--ljf-chapters-title, var(--ink));

}

.chapter-card a{

    color:inherit;

}

.chapter-card a:hover,
.chapter-card a:focus-visible{

    color:var(--ljf-chapters-title-hover, var(--ink));

}


/* ==========================================================
   Featured Post
========================================================== */

.featured-post{

    max-width:800px;

    margin:0 auto;

    text-align:center;

}

.featured-image img{

    width:100%;

    height:auto;

    border-radius:10px;

    margin-bottom:30px;

}


/* ==========================================================
   Quote
========================================================== */

.fragments-section blockquote{

    font-family:"Cormorant Garamond", serif;

    font-size:38px;

    font-style:italic;

    line-height:1.4;

    max-width:850px;

    margin:40px auto;

    color:var(--ink);

}


/* ==========================================================
   Footer
========================================================== */

.site-footer{

    margin-top:100px;

    padding:60px 20px;

    text-align:center;

    border-top:1px solid var(--stone);

}

.site-footer h3{

    margin-bottom:10px;

}


/* ==========================================================
   Responsive
========================================================== */

@media (max-width: 900px){

    .chapters-grid{

        grid-template-columns:1fr;

    }

    .fragment-hero h1{

        font-size:48px;

    }

    .featured-section,
    .chapters-section,
    .fragments-section,
    .newsletter-section{

        padding:40px 25px;

    }

  @media (max-width: 900px) {

    .content-with-sidebar {
        grid-template-columns: 1fr;
    }

    .site-sidebar {
        position: static;
        width: 100%;
        margin-top: 3rem;
        padding-top: 2.5rem;
        border-top: 1px solid rgba(40, 30, 30, 0.1);
    }

}

@media (max-width: 600px) {

    .content-with-sidebar {
        width: min(calc(100% - 1.5rem), 78rem);
    }

}
  
/* ==========================================================
   Fragment
========================================================== */
}

.fragment-entry,
.fragment-entry {
    position: relative;
    transition:
        transform 300ms ease,
        box-shadow 300ms ease,
        border-color 300ms ease;
}

.fragment-entry:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 45px rgba(41, 39, 37, 0.09);
}

.fragment-entry:focus-within {
    transform: translateY(-4px);
    box-shadow: 0 18px 45px rgba(41, 39, 37, 0.09);
}

.fragment-image {
    overflow: hidden;
}

.fragment-image img {
    display: block;
    width: 100%;
    transition:
        transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1),
        filter 500ms ease;
}

.fragment-entry:hover .fragment-image img {
    transform: scale(1.035);
}

.fragment-quote {
    margin: 0 auto;
    padding: 0;
    border: 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-style: italic;
    line-height: 1.4;
    color: var(--ink);
}

.fragment-quote p {
    margin: 0;
}

.fragment-title {
    margin: 30px 0 0;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--rose);
}

.fragment-date {
    margin-top: 12px;
    font-size: 0.8rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: 0.65;
}

/* ==========================================================
   Standard Pages
========================================================== */

.page-container,
.search-container,
.error-page-container {
    max-width: 1280px;
    margin: 100px auto;
    padding: 0 30px;
}

.page-content {
    max-width: 1100px;
    margin: 0 auto;
    padding: 60px;
    background: var(--paper);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.page-header {
    margin-bottom: 40px;
    text-align: center;
}

.page-title {
    margin: 0;
    font-size: clamp(2.8rem, 6vw, 4.5rem);
}

.page-featured-image {
    margin-bottom: 40px;
}

.page-featured-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
}

.page-body > *:first-child {
    margin-top: 0;
}

.page-body > *:last-child {
    margin-bottom: 0;
}


/* ==========================================================
   Search Results
========================================================== */

.search-header {
    margin-bottom: 60px;
    text-align: center;
}

.search-title span {
    color: var(--rose);
}

.search-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 40px;
}

.search-card {
    padding: 30px;
    background: var(--paper);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.search-card-image {
    display: block;
    margin-bottom: 25px;
}

.search-card-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.search-card-title {
    margin: 0 0 10px;
}

.search-card-date {
    margin-bottom: 20px;
    font-size: 0.85rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    opacity: 0.65;
}

.search-pagination {
    margin-top: 60px;
    text-align: center;
}

.search-empty {
    max-width: 700px;
    margin: 0 auto;
    padding: 60px;
    text-align: center;
    background: var(--paper);
    border-radius: 12px;
}


/* ==========================================================
   404 page
========================================================== */

.error-page-container {
    width: min(calc(100% - 2rem), 60rem);
    margin: 0 auto;
    padding: 8rem 0;
}

.error-page {
    text-align: center;
}

.error-subtitle {
    margin-bottom: 1rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    opacity: 0.7;
}

.error-title {
    margin-bottom: 1rem;
    font-size: clamp(5rem, 12vw, 8rem);
    line-height: 1;
}

.error-description {
    max-width: 40rem;
    margin: 0 auto 2.5rem;
}

.error-actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}

/* ==========================================================
   Forms
========================================================== */

.search-form {
    display: flex;
    max-width: 560px;
    margin: 25px auto 0;
}

.search-field {
    width: 100%;
    min-width: 0;
    padding: 14px 18px;
    border: 1px solid var(--stone);
    background: var(--background);
    color: var(--ink);
    font: inherit;
}

.search-submit {
    padding: 14px 24px;
    border: 1px solid var(--rose);
    background: var(--rose);
    color: #ffffff;
    font: inherit;
    cursor: pointer;
}

.search-submit:hover {
    background: var(--rose-dark);
    border-color: var(--rose-dark);
}


/* ==========================================================
   Responsive Pages
========================================================== */

@media (max-width: 600px) {

    .page-container,
    .search-container,
    .error-page-container {
        margin: 60px auto;
        padding: 0 20px;
    }

    .page-content,
    .search-empty,
    .error-page {
        padding: 40px 25px;
    }

    .search-form {
        display: block;
    }

    .search-submit {
        width: 100%;
        margin-top: 12px;
    }

}

/* ==========================================================
   Accessible Utilities
========================================================== */

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.screen-reader-text:focus,
.skip-link:focus {
    position: fixed;
    top: 15px;
    left: 15px;
    z-index: 99999;
    width: auto;
    height: auto;
    padding: 12px 18px;
    margin: 0;
    overflow: visible;
    clip-path: none;
    white-space: normal;
    background: var(--paper);
    color: var(--ink);
    border: 2px solid var(--rose);
}


.footer-inner {
    max-width: 1100px;
    margin: 0 auto;
}

.footer-message {
    margin: 0 0 12px;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.4rem;
    font-style: italic;
}

.footer-copyright {
    margin: 0;
    font-size: 0.85rem;
    letter-spacing: 1px;
    opacity: 0.7;
}

/* ==========================================================
   Reading progress bar
========================================================== */

.site-header {
    position: sticky;
}

.reading-progress {
    position: absolute;
    right: 0;
    bottom: calc(-1 * var(--ljf-reading-progress-height, 3px));
    left: 0;
    z-index: 1004;
    width: 100%;
    height: var(--ljf-reading-progress-height, 3px);
    overflow: hidden;
    background: rgba(232, 228, 222, 0.55);
    pointer-events: none;
}

.reading-progress-bar {
    display: block;
    width: 0;
    height: 100%;
    background: var(--ljf-reading-progress-colour, var(--rose));
    transition: width 80ms linear;
}


/* ==========================================================
   Reading time
========================================================== */

.reading-time {
    margin-bottom: 2rem;
    font-size: 0.9rem;
    letter-spacing: 1px;
    opacity: 0.7;
}


/* ==========================================================
   Typography
========================================================== */

body.ljf-dropcap-enabled .entry-content > p:first-of-type:not(.no-drop-cap)::first-letter,
body.ljf-dropcap-enabled .single-content > p:first-of-type:not(.no-drop-cap)::first-letter,
body.ljf-dropcap-enabled .page-body > p:first-of-type:not(.no-drop-cap)::first-letter {
    float: left;
    padding-top: 12px;
    padding-right: 8px;
    font-family: "Cormorant Garamond", serif;
    font-size: 4.5rem;
    line-height: 0.8;
    color: var(--rose);
}

body.ljf-dropcap-disabled .entry-content > p:first-of-type::first-letter,
body.ljf-dropcap-disabled .single-content > p:first-of-type::first-letter,
body.ljf-dropcap-disabled .page-body > p:first-of-type::first-letter,
.entry-content > p.no-drop-cap::first-letter,
.single-content > p.no-drop-cap::first-letter,
.page-body > p.no-drop-cap::first-letter {
    float: none;
    padding: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

.entry-content blockquote {
    margin: 3rem auto;
    padding: 2rem;
    border-left: 3px solid var(--rose);
    background: var(--paper);
    font-style: italic;
}

.entry-content blockquote p {
    margin-bottom: 0;
}

.entry-content hr {
    width: 80px;
    margin: 4rem auto;
    border: none;
    border-top: 1px solid var(--rose);
}

/* ==========================================================
   Reveal Animations
========================================================== */

.reveal-on-scroll {
    opacity: 0;
    transform: translateY(24px);
    transition:
        opacity 700ms ease var(--reveal-delay, 0ms),
        transform 700ms ease var(--reveal-delay, 0ms);
}

.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}


/* ==========================================================
   Smooth Scrolling
========================================================== */

html {
    scroll-behavior: smooth;
}


/* ==========================================================
   Editorial Cards
========================================================== */

.journal-card,
.journal-card,
.chapter-card,
.search-result-card {
    position: relative;
    transition:
        transform 300ms ease,
        box-shadow 300ms ease,
        border-color 300ms ease;
}

.journal-card:hover,
.journal-card:hover,
.chapter-card:hover,
.search-result-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 45px rgba(41, 39, 37, 0.09);
}

.journal-card:focus-within,
.journal-card:focus-within,
.chapter-card:focus-within,
.search-result-card:focus-within {
    transform: translateY(-4px);
    box-shadow: 0 18px 45px rgba(41, 39, 37, 0.09);
}


/* ==========================================================
   Card Images
========================================================== */

.journal-card-image,
.journal-card-image,
.featured-story-image,
.post-thumbnail {
    overflow: hidden;
}

.journal-card-image img,
.journal-card-image img,
.featured-story-image img,
.post-thumbnail img {
    display: block;
    width: 100%;
    transition:
        transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1),
        filter 500ms ease;
}

.journal-card:hover .journal-card-image img,
.journal-card:hover .journal-card-image img,
.featured-story:hover .featured-story-image img,
.post-thumbnail:hover img {
    transform: scale(1.035);
}


/* ==========================================================
   Buttons and Links
========================================================== */

.fragment-button,
.wp-block-button__link,
button,
input[type="submit"] {
    position: relative;
    transition:
        color 250ms ease,
        background-color 250ms ease,
        border-color 250ms ease,
        transform 250ms ease,
        box-shadow 250ms ease;
}

.fragment-button:hover,
.wp-block-button__link:hover,
button:hover,
input[type="submit"]:hover {
    transform: translateY(-2px);
}

.fragment-button:active,
.wp-block-button__link:active,
button:active,
input[type="submit"]:active {
    transform: translateY(0);
}

.entry-title a,
.card-title a,
.fragment-title a {
    transition: color 250ms ease;
}


/* ==========================================================
   Featured Story
========================================================== */

.featured-story {
    transition:
        transform 350ms ease,
        box-shadow 350ms ease;
}

.featured-story:hover {
    transform: translateY(-4px);
}


/* ==========================================================
   Focus Styling
========================================================== */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid var(--rose);
    outline-offset: 4px;
}


/* ==========================================================
   Reduced Motion
========================================================== */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    .reveal-on-scroll {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .journal-card,
    .fragment-entry,
    .chapter-card,
    .search-result-card,
    .featured-story,
    .fragment-button,
    .wp-block-button__link,
    button,
    input[type="submit"],
    .journal-card-image img,
    .fragment-image img,
    .featured-story-image img,
    .post-thumbnail img {
        transition: none;
    }

    .journal-card:hover,
    .fragment-entry:hover,
    .chapter-card:hover,
    .search-result-card:hover,
    .featured-story:hover,
    .fragment-button:hover,
    .wp-block-button__link:hover,
    button:hover,
    input[type="submit"]:hover {
        transform: none;
    }

    .journal-card:hover .journal-card-image img,
    .fragment-entry:hover .journal-card-image img,
    .featured-story:hover .featured-story-image img,
    .post-thumbnail:hover img {
        transform: none;
    }
}

/* ---------------------------------------------------------
   Accessibility
--------------------------------------------------------- */

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.screen-reader-text:focus {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 100000;
    width: auto;
    height: auto;
    padding: 0.85rem 1.25rem;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
    color: var(--ink);
    background: var(--paper);
    border: 2px solid var(--rose);
    border-radius: 3px;
    box-shadow: 0 4px 20px rgba(41, 39, 37, 0.16);
    font-weight: 600;
    text-decoration: none;
}

/*
 * Clear keyboard focus without changing ordinary mouse clicks.
 */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid var(--rose);
    outline-offset: 4px;
}

/*
 * Ensure form fields remain clearly visible when selected.
 */
input:focus,
textarea:focus,
select:focus {
    border-color: var(--rose-dark);
}

/*
 * Prevent anchored content from being hidden behind a sticky header.
 */
#primary {
    scroll-margin-top: 6rem;
}

/* =========================================================
   Theme and Mood Archives
   ========================================================= */

.taxonomy-archive {
    background: var(--color-background, #fcfbf8);
}

.taxonomy-hero {
    position: relative;
    padding: 7rem 1.5rem 6rem;
    overflow: hidden;
    text-align: center;
    border-bottom: 1px solid var(--color-stone, #e8e4de);
}

.taxonomy-hero::before {
    content: "";
    position: absolute;
    top: 2rem;
    left: 50%;
    width: 20rem;
    height: 20rem;
    border: 1px solid rgba(185, 141, 157, 0.2);
    border-radius: 50%;
    transform: translateX(-50%);
    pointer-events: none;
}

.taxonomy-hero::after {
    content: "";
    position: absolute;
    bottom: 2.5rem;
    left: 50%;
    width: 3rem;
    height: 1px;
    background: var(--color-rose, #b98d9d);
    transform: translateX(-50%);
}

.taxonomy-hero-inner {
    position: relative;
    z-index: 1;
    width: min(100%, 52rem);
    margin-inline: auto;
}

.archive-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.55rem;
    margin-bottom: 3rem;
    color: rgba(41, 39, 37, 0.65);
    font-family: "Lora", serif;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
}

.archive-breadcrumbs a {
    color: inherit;
    text-decoration: none;
}

.archive-breadcrumbs a:hover,
.archive-breadcrumbs a:focus-visible {
    color: var(--color-rose-dark, #9d6f80);
}

.taxonomy-type {
    margin: 0 0 1rem;
    color: var(--color-rose-dark, #9d6f80);
    font-family: "Lora", serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.taxonomy-title {
    margin: 0;
    color: var(--color-ink, #292725);
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(3.5rem, 9vw, 7rem);
    font-weight: 500;
    line-height: 0.95;
}

.taxonomy-description {
    width: min(100%, 42rem);
    margin: 2rem auto 0;
    color: rgba(41, 39, 37, 0.78);
    font-family: "Lora", serif;
    font-size: clamp(1rem, 2vw, 1.15rem);
    line-height: 1.9;
}

.taxonomy-description p:last-child {
    margin-bottom: 0;
}

.taxonomy-count {
    margin: 2rem 0 0;
    color: rgba(41, 39, 37, 0.58);
    font-family: "Lora", serif;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
}

.taxonomy-content {
    padding: 5.5rem 1.5rem 7rem;
}

.taxonomy-content-inner {
    width: min(100%, 76rem);
    margin-inline: auto;
}

.taxonomy-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3rem 2rem;
}

.taxonomy-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    background: var(--color-paper, #ffffff);
    border: 1px solid var(--color-stone, #e8e4de);
    transition:
        transform 250ms ease,
        box-shadow 250ms ease,
        border-color 250ms ease;
}

.taxonomy-card:hover {
    border-color: rgba(185, 141, 157, 0.55);
    box-shadow: 0 1.25rem 3rem rgba(41, 39, 37, 0.08);
    transform: translateY(-0.35rem);
}

.taxonomy-card-image {
    display: block;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--color-stone, #e8e4de);
}

.taxonomy-thumbnail {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms ease;
}

.taxonomy-card:hover .taxonomy-thumbnail {
    transform: scale(1.035);
}

.taxonomy-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 2.25rem;
}

.taxonomy-card-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    color: rgba(41, 39, 37, 0.55);
    font-family: "Lora", serif;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.taxonomy-post-type {
    color: var(--color-rose-dark, #9d6f80);
    font-weight: 600;
}

.taxonomy-card-title {
    margin: 0 0 1rem;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2rem, 4vw, 2.75rem);
    font-weight: 500;
    line-height: 1.05;
}

.taxonomy-card-title a {
    color: var(--color-ink, #292725);
    text-decoration: none;
}

.taxonomy-card-title a:hover,
.taxonomy-card-title a:focus-visible {
    color: var(--color-rose-dark, #9d6f80);
}

.taxonomy-card-excerpt {
    color: rgba(41, 39, 37, 0.76);
    font-family: "Lora", serif;
    font-size: 0.95rem;
    line-height: 1.8;
}

.taxonomy-card-excerpt p {
    margin-top: 0;
}

.taxonomy-card-terms {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 1.25rem;
}

.entry-term {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.35rem 0.75rem;
    color: var(--color-ink, #292725);
    font-family: "Lora", serif;
    font-size: 0.7rem;
    line-height: 1;
    text-decoration: none;
    border: 1px solid var(--color-stone, #e8e4de);
    border-radius: 999px;
    transition:
        color 200ms ease,
        background-color 200ms ease,
        border-color 200ms ease;
}

.entry-theme {
    background: rgba(185, 141, 157, 0.1);
    border-color: rgba(185, 141, 157, 0.38);
}

.entry-mood {
    background: rgba(232, 228, 222, 0.45);
}

.entry-term:hover,
.entry-term:focus-visible {
    color: #ffffff;
    background: var(--color-rose-dark, #9d6f80);
    border-color: var(--color-rose-dark, #9d6f80);
}

.taxonomy-read-more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 0.6rem;
    margin-top: auto;
    padding-top: 1.75rem;
    color: var(--color-rose-dark, #9d6f80);
    font-family: "Lora", serif;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.taxonomy-read-more span[aria-hidden="true"] {
    transition: transform 200ms ease;
}

.taxonomy-read-more:hover span[aria-hidden="true"],
.taxonomy-read-more:focus-visible span[aria-hidden="true"] {
    transform: translateX(0.3rem);
}

.archive-pagination {
    margin-top: 5rem;
}

.archive-pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
}

.archive-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.5rem 0.8rem;
    color: var(--color-ink, #292725);
    font-family: "Lora", serif;
    font-size: 0.8rem;
    text-decoration: none;
    background: var(--color-paper, #ffffff);
    border: 1px solid var(--color-stone, #e8e4de);
}

.archive-pagination .page-numbers:hover,
.archive-pagination .page-numbers:focus-visible,
.archive-pagination .page-numbers.current {
    color: #ffffff;
    background: var(--color-rose-dark, #9d6f80);
    border-color: var(--color-rose-dark, #9d6f80);
}

.taxonomy-empty {
    width: min(100%, 40rem);
    margin-inline: auto;
    padding: 5rem 2rem;
    text-align: center;
    background: var(--color-paper, #ffffff);
    border: 1px solid var(--color-stone, #e8e4de);
}

.taxonomy-empty-symbol {
    margin: 0 0 1.25rem;
    color: var(--color-rose, #b98d9d);
    font-size: 2rem;
}

.taxonomy-empty h2 {
    margin: 0 0 1rem;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    font-weight: 500;
}

.taxonomy-empty p {
    color: rgba(41, 39, 37, 0.72);
    font-family: "Lora", serif;
    line-height: 1.8;
}

.taxonomy-home-link {
    display: inline-flex;
    margin-top: 1rem;
    padding-bottom: 0.25rem;
    color: var(--color-rose-dark, #9d6f80);
    font-family: "Lora", serif;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
    border-bottom: 1px solid currentColor;
}

/* Tablet and mobile */

@media (max-width: 900px) {
    .taxonomy-hero {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .taxonomy-grid {
        grid-template-columns: 1fr;
        width: min(100%, 38rem);
        margin-inline: auto;
    }
}

@media (max-width: 400px) {
    .taxonomy-hero {
        padding-inline: 1rem;
    }

    .archive-breadcrumbs {
        margin-bottom: 2.25rem;
    }

    .taxonomy-content {
        padding: 3.5rem 1rem 5rem;
    }

    .taxonomy-card-content {
        padding: 1.6rem;
    }

    .taxonomy-card-title {
        font-size: 2rem;
    }
}

/* =========================================================
   Single Entry Themes and Moods
   ========================================================= */

.entry-taxonomies {
    display: grid;
    gap: 1.5rem;
    width: min(100%, 46rem);
    margin: 3.5rem auto 0;
    padding: 2rem 0;
    border-top: 1px solid var(--color-stone, #e8e4de);
    border-bottom: 1px solid var(--color-stone, #e8e4de);
}

.entry-taxonomy-group {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr);
    align-items: start;
    gap: 1rem;
}

.entry-taxonomy-label {
    padding-top: 0.55rem;
    color: var(--color-rose-dark, #9d6f80);
    font-family: "Lora", serif;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1;
    text-transform: uppercase;
}

.entry-taxonomy-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.entry-taxonomies .entry-term {
    display: inline-flex;
    align-items: center;
    min-height: 2.1rem;
    padding: 0.4rem 0.85rem;
    color: var(--color-ink, #292725);
    font-family: "Lora", serif;
    font-size: 0.72rem;
    line-height: 1;
    text-decoration: none;
    border: 1px solid var(--color-stone, #e8e4de);
    border-radius: 999px;
    transition:
        color 200ms ease,
        background-color 200ms ease,
        border-color 200ms ease,
        transform 200ms ease;
}

.entry-taxonomies .entry-theme {
    background: rgba(185, 141, 157, 0.1);
    border-color: rgba(185, 141, 157, 0.4);
}

.entry-taxonomies .entry-mood {
    background: rgba(232, 228, 222, 0.5);
}

.entry-taxonomies .entry-term:hover,
.entry-taxonomies .entry-term:focus-visible {
    color: #ffffff;
    background: var(--color-rose-dark, #9d6f80);
    border-color: var(--color-rose-dark, #9d6f80);
    transform: translateY(-0.1rem);
}

@media (max-width: 600px) {
    .entry-taxonomies {
        margin-top: 2.5rem;
        padding-block: 1.5rem;
    }

    .entry-taxonomy-group {
        grid-template-columns: 1fr;
        gap: 0.7rem;
    }

    .entry-taxonomy-label {
        padding-top: 0;
    }
}

/* =========================================================
   Kindred Pieces
   ========================================================= */

.kindred-pieces {
    width: min(calc(100% - 3rem), 76rem);
    margin: 6rem auto 0;
    padding: 5rem 0 1rem;
    border-top: 1px solid var(--color-stone, #e8e4de);
}

.kindred-pieces-header {
    margin-bottom: 3rem;
    text-align: center;
}

.kindred-pieces-eyebrow {
    margin: 0 0 0.75rem;
    color: var(--color-rose-dark, #9d6f80);
    font-family: "Lora", serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.kindred-pieces-header h2 {
    margin: 0;
    color: var(--color-ink, #292725);
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2.75rem, 6vw, 4.5rem);
    font-weight: 500;
    line-height: 1;
}

.kindred-pieces-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
}

.kindred-piece {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    background: var(--color-paper, #ffffff);
    border: 1px solid var(--color-stone, #e8e4de);
    transition:
        border-color 250ms ease,
        box-shadow 250ms ease,
        transform 250ms ease;
}

.kindred-piece:hover {
    border-color: rgba(185, 141, 157, 0.55);
    box-shadow: 0 1.25rem 3rem rgba(41, 39, 37, 0.08);
    transform: translateY(-0.3rem);
}

.kindred-piece-image {
    display: block;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--color-stone, #e8e4de);
}

.kindred-piece-thumbnail {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms ease;
}

.kindred-piece:hover .kindred-piece-thumbnail {
    transform: scale(1.035);
}

.kindred-piece-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1.75rem;
}

.kindred-piece-type {
    margin: 0 0 0.8rem;
    color: var(--color-rose-dark, #9d6f80);
    font-family: "Lora", serif;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.kindred-piece-title {
    margin: 0;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.8rem, 3vw, 2.35rem);
    font-weight: 500;
    line-height: 1.05;
}

.kindred-piece-title a {
    color: var(--color-ink, #292725);
    text-decoration: none;
}

.kindred-piece-title a:hover,
.kindred-piece-title a:focus-visible {
    color: var(--color-rose-dark, #9d6f80);
}

.kindred-piece-terms {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 1.25rem;
}

.kindred-term {
    display: inline-flex;
    padding: 0.35rem 0.65rem;
    color: rgba(41, 39, 37, 0.72);
    font-family: "Lora", serif;
    font-size: 0.65rem;
    line-height: 1;
    border: 1px solid var(--color-stone, #e8e4de);
    border-radius: 999px;
}

.kindred-theme {
    background: rgba(185, 141, 157, 0.1);
    border-color: rgba(185, 141, 157, 0.35);
}

.kindred-mood {
    background: rgba(232, 228, 222, 0.5);
}

.kindred-piece-link {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 0.55rem;
    margin-top: auto;
    padding-top: 1.75rem;
    color: var(--color-rose-dark, #9d6f80);
    font-family: "Lora", serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.kindred-piece-link span[aria-hidden="true"] {
    transition: transform 200ms ease;
}

.kindred-piece-link:hover span[aria-hidden="true"],
.kindred-piece-link:focus-visible span[aria-hidden="true"] {
    transform: translateX(0.3rem);
}

@media (max-width: 900px) {
    .kindred-pieces-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kindred-piece:last-child {
        grid-column: 1 / -1;
        width: min(100%, 30rem);
        justify-self: center;
    }
}

@media (max-width: 600px) {
    .kindred-pieces {
        width: min(calc(100% - 2rem), 36rem);
        margin-top: 4rem;
        padding-top: 3.5rem;
    }

    .kindred-pieces-grid {
        grid-template-columns: 1fr;
    }

    .kindred-piece:last-child {
        grid-column: auto;
        width: 100%;
    }
}

/* =========================================================
   Customisable Homepage Hero
   ========================================================= */

.fragment-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: clamp(32rem, 72vh, 52rem);
    overflow: hidden;
    background-position: var(--hero-image-position, center center);
    background-repeat: no-repeat;
    background-size: cover;
}

.fragment-hero-overlay {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: transparent;
    pointer-events: none;
}

.fragment-hero-has-image .fragment-hero-overlay {
    background-color: var(--hero-overlay, #fcfbf8);
    opacity: var(--hero-overlay-opacity, 0.35);
}

.fragment-hero .hero-inner {
    position: relative;
    z-index: 1;
}

.fragment-hero h1,
.fragment-hero p {
    color: var(--hero-text, #292725);
}

/* =========================================================
   Customisable Hero Button
   Keep this at the very bottom of main.css
   ========================================================= */

.fragment-hero .hero-inner a.fragment-button {
    color: var(--hero-button-text, #ffffff) !important;
    background: var(--hero-button-background, #e09695) !important;
    border-color: var(--hero-button-border, #e09695) !important;
}

.fragment-hero .hero-inner a.fragment-button:hover,
.fragment-hero .hero-inner a.fragment-button:focus,
.fragment-hero .hero-inner a.fragment-button:focus-visible {
    color: var(--hero-button-hover-text, #ffffff) !important;
    background: var(
        --hero-button-hover-background,
        #9d6f80
    ) !important;
    border-color: var(
        --hero-button-hover-background,
        #9d6f80
    ) !important;
}

/* ==========================================================
   Reading Mode
========================================================== */

.reading-tools {
    display: flex;
    justify-content: center;
    margin: 0 0 2.5rem;
}

.reading-mode-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    min-height: 2.75rem;
    padding: 0.65rem 1rem;
    color: var(--ink);
    font-family: "Lora", Georgia, serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: var(--paper);
    border: 1px solid var(--stone);
    border-radius: 999px;
    cursor: pointer;
}

.reading-mode-toggle:hover,
.reading-mode-toggle:focus-visible {
    color: var(--rose-dark);
    background: rgba(185, 141, 157, 0.08);
    border-color: var(--rose);
    transform: translateY(-1px);
}

.reading-mode-toggle[aria-pressed="true"] {
    color: #ffffff;
    background: var(--rose-dark);
    border-color: var(--rose-dark);
}

.reading-mode-symbol {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
    text-transform: none;
}

body.single.reading-mode .site-sidebar {
    display: none;
}

/* ----------------------------------------------------------
   Active Reading Mode
---------------------------------------------------------- */

body.single.reading-mode {
    background: #f7f3ec;
}


/*
 * Minimise the desktop header while keeping the
 * mobile navigation available.
 */

@media (min-width: 901px) {

    body.single.reading-mode .site-header {
        min-height: 3px;
        padding: 0;
        background: transparent;
        border-bottom: 0;
        box-shadow: none;
        backdrop-filter: none;
    }

    body.single.reading-mode .site-header .header-inner {
        display: none;
    }

    body.single.reading-mode .site-header .reading-progress {
        bottom: 0;
    }

}


/*
 * Create a calm, centred reading area.
 */

body.single.reading-mode .single-post-container,
body.single.reading-mode .single-fragment-container {
    width: min(calc(100% - 2rem), 58rem);
    margin: 3rem auto;
    padding: 0;
}

body.single.reading-mode .single-post,
body.single.reading-mode .single-fragment {
    padding: clamp(2rem, 6vw, 5rem);
    background: var(--paper);
    border: 1px solid rgba(232, 228, 222, 0.8);
    box-shadow: 0 1.5rem 4rem rgba(41, 39, 37, 0.06);
}


/*
 * Improve reading width, text size and spacing.
 */

body.single.reading-mode .single-content,
body.single.reading-mode .single-fragment-quote {
    width: min(100%, 46rem);
    margin-right: auto;
    margin-left: auto;
    font-size: clamp(1.08rem, 2vw, 1.2rem);
    line-height: 2;
    letter-spacing: 0.005em;
}

body.single.reading-mode .single-content p,
body.single.reading-mode .single-fragment-quote p {
    margin-bottom: 1.75em;
}

body.single.reading-mode .single-content h2,
body.single.reading-mode .single-content h3,
body.single.reading-mode .single-content h4 {
    margin-top: 2.5em;
    margin-bottom: 0.8em;
    line-height: 1.15;
}


/*
 * Keep featured images responsive in reading mode.
 */

body.single.reading-mode .single-image,
body.single.reading-mode .post-thumbnail,
body.single.reading-mode .single-featured-image {
    width: min(100%, 48rem);
    margin: 2.5rem auto;
    overflow: hidden;
}

body.single.reading-mode .single-image img,
body.single.reading-mode .post-thumbnail img,
body.single.reading-mode .single-featured-image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: cover;
}


/*
 * Keep the title comfortably readable.
 */

body.single.reading-mode .single-title,
body.single.reading-mode .single-fragment-title {
    width: min(100%, 48rem);
    margin-right: auto;
    margin-left: auto;
    font-size: clamp(3rem, 7vw, 5.5rem);
    line-height: 0.98;
    text-align: center;
}

body.single.reading-mode .single-date,
body.single.reading-mode .single-fragment-date,
body.single.reading-mode .reading-time {
    text-align: center;
}


/*
 * Hide secondary content until reading mode is closed.
 */

body.single.reading-mode .entry-taxonomies,
body.single.reading-mode .kindred-pieces,
body.single.reading-mode .site-footer {
    display: none;
}


/*
 * Make the active toggle easy to find.
 */

body.single.reading-mode .reading-tools {
    position: sticky;
    top: 1rem;
    z-index: 50;
    width: max-content;
    margin-right: auto;
    margin-left: auto;
}


/* ----------------------------------------------------------
   Reading Mode Mobile
---------------------------------------------------------- */

@media (max-width: 600px) {

    body.single.reading-mode .single-post-container,
    body.single.reading-mode .single-fragment-container {
        width: min(calc(100% - 1rem), 58rem);
        margin-top: 1rem;
    }

    body.single.reading-mode .single-post,
    body.single.reading-mode .single-fragment {
        padding: 2.25rem 1.35rem;
    }

    body.single.reading-mode .single-content,
    body.single.reading-mode .single-fragment-quote {
        font-size: 1.05rem;
        line-height: 1.9;
    }

    body.single.reading-mode .single-image,
    body.single.reading-mode .post-thumbnail,
    body.single.reading-mode .single-featured-image {
        width: 100%;
        margin: 2rem auto;
    }

    body.single.reading-mode .single-image img,
    body.single.reading-mode .post-thumbnail img,
    body.single.reading-mode .single-featured-image img {
        width: 100%;
        max-width: 100%;
        height: auto;
    }

    body.single.reading-mode .reading-tools {
        top: 6rem;
    }

}


/* ==========================================================
   Responsive Refinements
========================================================== */

/*
 * Smaller phones
 */

@media (max-width: 350px) {

    body {
        font-size: 16px;
    }

    .site-title {
        font-size: 1.75rem;
    }

    .fragment-hero {
        padding-right: 14px;
        padding-left: 14px;
    }

    .fragment-hero h1 {
        font-size: 2.35rem;
    }

    .page-container,
    .search-container,
    .error-page-container {
        padding-right: 12px;
        padding-left: 12px;
    }

    .page-content,
    .search-empty,
    .error-page {
        padding-right: 18px;
        padding-left: 18px;
    }

    body.single.reading-mode .single-post,
    body.single.reading-mode .single-fragment {
        padding-right: 1rem;
        padding-left: 1rem;
    }

}


/*
 * Modern phones
 */

@media (min-width: 351px) and (max-width: 400px) {

    .fragment-hero h1 {
        font-size: 2.65rem;
    }

}


/*
 * Large phones and portrait tablets
 */

@media (min-width: 401px) and (max-width: 600px) {

    .fragment-hero h1 {
        font-size: clamp(3rem, 11vw, 4rem);
    }

    .featured-section,
    .chapters-section,
    .fragments-section,
    .newsletter-section {
        margin-top: 70px;
        margin-bottom: 70px;
    }

}


/*
 * Landscape tablets and small desktops
 */

@media (min-width: 601px) and (max-width: 900px) {

    .chapters-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .featured-section,
    .chapters-section,
    .fragments-section,
    .newsletter-section {
        width: min(calc(100% - 3rem), 68rem);
    }

    .kindred-pieces-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}


/*
 * Standard and wide desktops
 */

@media (min-width: 1200px) {

    .featured-section,
    .chapters-section,
    .fragments-section,
    .newsletter-section,
    .footer-inner {
        max-width: 1200px;
    }

}


/*
 * Very large and 4K displays
 */

@media (min-width: 1800px) {

    body {
        font-size: 19px;
    }

    .fragment-hero .hero-inner {
        max-width: 980px;
    }

    .fragment-hero h1 {
        font-size: clamp(5rem, 5vw, 7rem);
    }

    .featured-section,
    .chapters-section,
    .fragments-section,
    .newsletter-section {
        max-width: 1320px;
    }

    .taxonomy-content-inner,
    .kindred-pieces {
        max-width: 1360px;
    }

}


/* ----------------------------------------------------------
   Reduced Motion
---------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

    .reading-mode-toggle {
        transition: none;
    }

    .reading-mode-toggle:hover {
        transform: none;
    }

}

/* ==========================================================
   Search
========================================================== */

.search-container {
    width: min(calc(100% - 2rem), 72rem);
    margin: 0 auto;
    padding: 4rem 0;
}

.search-empty {
    max-width: 40rem;
    margin: 4rem auto;
    text-align: center;
}

.search-empty form {
    margin-top: 2rem;
}

/* ==========================================================
   Footnotes
========================================================== */

.footnotes {
    margin-top: 4rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.footnotes ol {
    margin: 0;
    padding-left: 1.5rem;
}

.footnotes li {
    margin-bottom: 1rem;
    line-height: 1.8;
}

sup {
    font-size: 0.75em;
    vertical-align: super;
}

sup a {
    text-decoration: none;
}

sup a:hover {
    opacity: 0.7;
}

/* ==========================================================
   Themes widget
========================================================== */

.themes-widget {
    padding: 1.75rem;
    background: rgba(255, 255, 255, 0.32);
    border: 1px solid rgba(0, 0, 0, 0.07);
}

.themes-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.themes-list li {
    margin: 0;
}

.themes-list a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.8rem;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 999px;
    font-size: 0.85rem;
    line-height: 1.2;
    text-decoration: none;
    transition:
        border-color 180ms ease,
        background-color 180ms ease,
        transform 180ms ease;
}

.themes-list a:hover,
.themes-list a:focus-visible {
    background: rgba(181, 111, 128, 0.1);
    border-color: rgba(181, 111, 128, 0.45);
    transform: translateY(-1px);
}

.themes-list .count {
    opacity: 0.55;
}

/* ==========================================================
   Sidebar layout
========================================================== */

.content-with-sidebar {
    width: min(calc(100% - 2rem), 78rem);
    margin-inline: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 18rem;
    align-items: start;
    gap: clamp(2rem, 5vw, 5rem);
}

.site-sidebar {
    position: sticky;
    top: 7rem;
    min-width: 0;
}

.widget {
    margin-bottom: 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid rgba(40, 30, 30, 0.1);
}

.widget:last-child {
    border-bottom: 0;
}

.widget-title {
    margin: 0 0 1.25rem;
    font-size: 1rem;
    line-height: 1.3;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.widget ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.widget li {
    margin-bottom: 0.8rem;
}

.widget li:last-child {
    margin-bottom: 0;
}

.widget a {
    color: inherit;
    text-decoration: none;
}

.widget a:hover,
.widget a:focus-visible {
    color: var(--accent-color, #a96373);
}

.widget img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

/* ==========================================================
   Explore by Theme widget
========================================================== */

.widget-theme-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.widget-theme-item {
    margin: 0;
}

.widget-theme-item a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.85rem;
    color: inherit;
    font-size: 0.85rem;
    line-height: 1.2;
    text-decoration: none;
    border: 1px solid rgba(40, 30, 30, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.2);
    transition:
        color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        transform 180ms ease;
}

.widget-theme-item a:hover,
.widget-theme-item a:focus-visible {
    color: var(--accent-color, #a96373);
    background: rgba(169, 99, 115, 0.08);
    border-color: rgba(169, 99, 115, 0.45);
    transform: translateY(-1px);
}

.widget-theme-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding-inline: 0.3rem;
    font-size: 0.7rem;
    line-height: 1;
    border-radius: 999px;
    background: rgba(40, 30, 30, 0.07);
}

/* ==========================================================
   Fixed sidebar layout
   Literary Journal Foundation
========================================================== */

/*
 * Desktop layout:
 * - main content stays in its own column
 * - sidebar is narrower and non-sticky
 * - both columns remain inside the centred page wrapper
 */
.content-with-sidebar {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 36px;
    align-items: start;
    width: min(calc(100% - 40px), 1280px);
    max-width: 1280px;
    margin-inline: auto;
}

/*
 * Prevent the article from keeping an old outer width that could
 * force it underneath or over the sidebar.
 */
.content-with-sidebar > #primary,
.content-with-sidebar > .single-post-container {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
}

/*
 * Fixed-width, normal-flow sidebar.
 */
.content-with-sidebar > #secondary,
.content-with-sidebar > .site-sidebar {
    box-sizing: border-box;
    width: 260px;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    position: static !important;
    top: auto !important;
    inset: auto !important;
    transform: none !important;
    align-self: start;
}

/*
 * Keep wide content inside its own column.
 */
.content-with-sidebar > * {
    min-width: 0;
}

.content-with-sidebar img,
.content-with-sidebar video,
.content-with-sidebar iframe,
.content-with-sidebar table,
.content-with-sidebar pre {
    max-width: 100%;
}

/*
 * Tablet and mobile:
 * sidebar moves underneath the post content.
 */
@media (max-width: 900px) {
    .content-with-sidebar {
        grid-template-columns: minmax(0, 1fr);
        gap: 2.5rem;
        width: min(calc(100% - 32px), 900px);
    }

    .content-with-sidebar > #secondary,
    .content-with-sidebar > .site-sidebar {
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .content-with-sidebar {
        width: min(calc(100% - 24px), 900px);
    }
}
/* ==========================================================
   Homepage Featured Boxes
========================================================== */

.ljf-featured-boxes-section {
    width: 100%;
    padding: clamp(2rem, 5vw, 4.5rem) 1.25rem;
}

.ljf-featured-boxes-heading {
    width: min(100%, var(--ljf-featured-boxes-width, 1200px));
    margin: 0 auto var(--ljf-featured-section-title-spacing, 32px);
    color: var(--ljf-featured-section-title-colour, #292725);
    font-family: var(--ljf-featured-section-title-font, "Cormorant Garamond", Georgia, serif);
    font-size: clamp(1.75rem, 5vw, var(--ljf-featured-section-title-size, 42px));
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: 0.02em;
    text-align: var(--ljf-featured-section-title-align, center);
}

.ljf-featured-boxes-inner {
    width: min(100%, var(--ljf-featured-boxes-width, 1200px));
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(var(--ljf-featured-boxes-columns, 3), minmax(0, 1fr));
    gap: var(--ljf-featured-boxes-gap, 24px);
}

.ljf-featured-boxes-count-3 { --ljf-featured-boxes-columns: 3; }
.ljf-featured-boxes-count-4 { --ljf-featured-boxes-columns: 4; }
.ljf-featured-boxes-count-5 { --ljf-featured-boxes-columns: 5; }

.ljf-featured-box {
    display: block;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.ljf-featured-box-image {
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden;
    border-radius: var(--ljf-featured-box-radius, 0);
    background: rgba(41, 39, 37, 0.06);
}

.ljf-featured-boxes-ratio-landscape .ljf-featured-box-image { aspect-ratio: 4 / 3; }
.ljf-featured-boxes-ratio-square .ljf-featured-box-image { aspect-ratio: 1 / 1; }
.ljf-featured-boxes-ratio-portrait .ljf-featured-box-image { aspect-ratio: 3 / 4; }
.ljf-featured-boxes-ratio-circle .ljf-featured-box-image {
    aspect-ratio: 1 / 1;
    border-radius: 50%;
}

.ljf-featured-box-image img,
.ljf-featured-box-placeholder {
    display: block;
    width: 100%;
    height: 100%;
}

.ljf-featured-box-image img {
    object-fit: var(--ljf-featured-box-fit, cover);
    transition: transform 600ms cubic-bezier(0.2, 0.7, 0.2, 1), filter 300ms ease;
}

.ljf-featured-box-placeholder {
    background: linear-gradient(135deg, rgba(185, 141, 157, 0.16), rgba(41, 39, 37, 0.08));
}

.ljf-featured-box-title {
    display: block;
    margin-top: var(--ljf-featured-box-title-spacing, 14px);
    color: var(--ljf-featured-box-title-colour, #292725);
    font-family: var(--ljf-featured-box-title-font, inherit);
    font-size: var(--ljf-featured-box-title-size, 18px);
    font-weight: var(--ljf-featured-box-title-weight, 400);
    line-height: 1.3;
    text-align: var(--ljf-featured-box-title-align, center);
}

a.ljf-featured-box:hover .ljf-featured-box-image img,
a.ljf-featured-box:focus-visible .ljf-featured-box-image img {
    transform: scale(1.045);
}

a.ljf-featured-box:hover .ljf-featured-box-title,
a.ljf-featured-box:focus-visible .ljf-featured-box-title {
    color: var(--rose-dark, #9d6f80);
}

@media (max-width: 900px) {
    .ljf-featured-boxes-count-4 .ljf-featured-boxes-inner,
    .ljf-featured-boxes-count-5 .ljf-featured-boxes-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .ljf-featured-boxes-section {
        padding-inline: 1rem;
    }

    .ljf-featured-boxes-inner,
    .ljf-featured-boxes-count-3 .ljf-featured-boxes-inner,
    .ljf-featured-boxes-count-4 .ljf-featured-boxes-inner,
    .ljf-featured-boxes-count-5 .ljf-featured-boxes-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: min(var(--ljf-featured-boxes-gap, 24px), 18px);
    }

    .ljf-featured-box-title {
        font-size: min(var(--ljf-featured-box-title-size, 18px), 18px);
    }
}

/* ==========================================================
   Header and Menu Builder v1.7
   Single authoritative header and responsive navigation system
========================================================== */

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    padding: 0;
    background: var(--ljf-menu-bar-background, rgba(252, 251, 248, 0.96));
    border-bottom: 1px solid rgba(232, 228, 222, 0.75);
    backdrop-filter: blur(12px);
}

.site-header > .header-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    width: min(calc(100% - 40px), var(--ljf-header-max-width, 1200px));
    max-width: var(--ljf-header-max-width, 1200px);
    min-height: 76px;
    margin: 0 auto;
    padding: var(--ljf-header-padding-y, 20px) 0;
}

.ljf-header-width-full > .header-inner {
    width: calc(100% - 40px);
    max-width: none;
}

.site-branding {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 48%;
    margin: 0;
    text-align: left;
}

.site-branding-main,
.site-branding .custom-logo-link,
.site-branding .site-logo {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--ljf-branding-item-gap, 10px);
    width: auto;
    max-width: 100%;
    margin: 0;
}

.site-branding img,
.site-branding .custom-logo {
    display: block;
    width: auto;
    max-width: min(100%, var(--ljf-logo-max-width, 360px));
    max-height: 92px;
    height: auto;
    object-fit: contain;
}

.site-branding .site-title {
    display: inline-block;
    margin: 0;
    color: var(--ljf-site-name-colour, var(--ink));
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.8rem, 5vw, var(--ljf-site-name-size, 48px));
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: 1px;
}

.site-branding .site-title:hover,
.site-branding .site-title:focus-visible {
    color: var(--ljf-site-name-hover, var(--rose));
}

.site-branding .site-description {
    margin: 10px 0 0;
    color: var(--ljf-tagline-colour, var(--ink));
    font-size: var(--ljf-tagline-size, 15px);
    opacity: 0.7;
}

.main-navigation {
    flex: 1 1 auto;
    width: auto;
    margin: 0;
}

.primary-menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 15px var(--ljf-menu-item-gap, 35px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ljf-menu-align-left .primary-menu { justify-content: flex-start; }
.ljf-menu-align-center .primary-menu { justify-content: center; }
.ljf-menu-align-right .primary-menu { justify-content: flex-end; }

.primary-menu > li {
    position: relative;
    display: flex;
    align-items: center;
    margin: 0;
}

.primary-menu > li > a {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
    min-height: 44px;
    padding: 8px 0;
    color: var(--ljf-menu-text-colour, var(--ink));
    font-family: var(--ljf-menu-font, inherit);
    font-size: var(--ljf-menu-font-size, 14px);
    font-weight: var(--ljf-menu-font-weight, 400);
    letter-spacing: var(--ljf-menu-letter-spacing, 2px);
    text-transform: var(--ljf-menu-text-transform, uppercase);
}

.primary-menu > li > a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 2px;
    left: 0;
    height: 1px;
    background: var(--ljf-menu-hover-colour, var(--rose));
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 180ms ease;
}

.primary-menu > li > a:hover,
.primary-menu > li > a:focus-visible {
    color: var(--ljf-menu-hover-colour, var(--rose-dark));
}

.primary-menu > li > a:hover::after,
.primary-menu > li > a:focus-visible::after,
.primary-menu > .current-menu-item > a::after,
.primary-menu > .current-menu-ancestor > a::after,
.primary-menu > .current_page_item > a::after {
    transform: scaleX(1);
}

.primary-menu > .current-menu-item > a,
.primary-menu > .current-menu-ancestor > a,
.primary-menu > .current_page_item > a {
    color: var(--ljf-menu-active-colour, var(--rose));
}

.primary-menu .sub-menu {
    position: absolute;
    top: calc(100% + 12px);
    left: 50%;
    z-index: 1200;
    display: block;
    width: var(--ljf-dropdown-width, 240px);
    min-width: var(--ljf-dropdown-width, 240px);
    margin: 0;
    padding: 12px 0;
    visibility: hidden;
    list-style: none;
    text-align: left;
    background: var(--ljf-dropdown-background, var(--paper));
    border: 1px solid var(--stone);
    border-radius: var(--ljf-dropdown-radius, 4px);
    box-shadow: 0 18px 45px rgba(41, 39, 37, 0.12);
    opacity: 0;
    transform: translate(-50%, 10px);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
}

.primary-menu .menu-item-has-children:hover > .sub-menu,
.primary-menu .menu-item-has-children:focus-within > .sub-menu {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0);
}

.primary-menu .sub-menu li { margin: 0; }

.primary-menu .sub-menu a {
    display: block;
    padding: 11px 20px;
    color: var(--ljf-dropdown-text-colour, var(--ink));
    font-family: var(--ljf-submenu-font, "Lora", Georgia, serif);
    font-size: 0.82rem;
    font-weight: 400;
    letter-spacing: 0.04em;
    line-height: 1.4;
    text-transform: none;
}

.primary-menu .sub-menu a:hover,
.primary-menu .sub-menu a:focus-visible {
    color: var(--ljf-dropdown-hover-colour, var(--rose-dark));
    background: var(--ljf-dropdown-hover-background, #f5ecef);
}

.primary-menu .sub-menu .current-menu-item > a,
.primary-menu .sub-menu .current-menu-ancestor > a {
    color: var(--ljf-dropdown-active-colour, #fff);
    background: var(--ljf-dropdown-active-background, var(--rose));
}

.primary-menu > .menu-item-has-children > a::before {
    content: "";
    order: 2;
    width: 0.48em;
    height: 0.48em;
    margin-left: 0.15em;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-0.12em) rotate(45deg);
}

body.ljf-dropdown-indicator-plus .primary-menu > .menu-item-has-children > a::before {
    width: 0.65em;
    height: 0.65em;
    border: 0;
    background: linear-gradient(currentColor, currentColor) center/100% 1px no-repeat,
                linear-gradient(currentColor, currentColor) center/1px 100% no-repeat;
    transform: none;
}

body.ljf-dropdown-indicator-triangle .primary-menu > .menu-item-has-children > a::before {
    width: 0;
    height: 0;
    border: 0;
    border-right: 0.28em solid transparent;
    border-left: 0.28em solid transparent;
    border-top: 0.38em solid currentColor;
    transform: none;
}

body.ljf-dropdown-indicator-none .primary-menu > .menu-item-has-children > a::before {
    display: none;
}

.ljf-menu-icon {
    display: inline-flex;
    flex: 0 0 auto;
    width: 1.15em;
    height: 1.15em;
}

.ljf-menu-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.primary-menu > .ljf-menu-button-item > a {
    padding: var(--ljf-button-padding-y, 11px) var(--ljf-button-padding-x, 22px);
    color: var(--ljf-button-text, #fff);
    background: var(--ljf-button-background, var(--rose));
    border: 1px solid var(--ljf-button-border, var(--rose));
    border-radius: var(--ljf-button-radius, 4px);
    line-height: 1.1;
}

.primary-menu > .ljf-menu-button-item > a::after { display: none; }

.primary-menu > .ljf-menu-button-item > a:hover,
.primary-menu > .ljf-menu-button-item > a:focus-visible {
    color: var(--ljf-button-hover-text, #fff);
    background: var(--ljf-button-hover-background, var(--rose-dark));
    border-color: var(--ljf-button-hover-background, var(--rose-dark));
}

.menu-toggle,
.ljf-submenu-toggle {
    display: none;
}

/* Top bar */
.ljf-top-bar {
    width: 100%;
    color: var(--ljf-topbar-text, rgba(255, 255, 255, 0.9));
    background: var(--ljf-topbar-bg, #292725);
    border-bottom: 1px solid var(--ljf-topbar-border, rgba(185, 141, 157, 0.35));
    font-size: var(--ljf-topbar-font-size, 13px);
    font-family: var(--ljf-topbar-font-family, inherit);
    line-height: 1.5;
}

.ljf-top-bar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: min(calc(100% - 40px), var(--ljf-header-max-width, 1200px));
    margin: 0 auto;
    padding: var(--ljf-topbar-padding, 10px) 0;
}

.ljf-top-bar a { color: inherit; }
.ljf-top-bar-message { min-width: 0; }
.ljf-top-bar-tools { display: flex; align-items: center; gap: 14px; }
.ljf-top-bar-tools-left-text-right .ljf-top-bar-inner { flex-direction: row-reverse; }
.ljf-top-bar-centred .ljf-top-bar-inner { justify-content: center; flex-wrap: wrap; text-align: center; }

.ljf-social-links { display: flex; align-items: center; gap: 9px; }
.ljf-social-link,
.ljf-header-search summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--ljf-topbar-icon, rgba(255, 255, 255, 0.9));
    cursor: pointer;
}

.ljf-social-link:hover,
.ljf-social-link:focus-visible,
.ljf-header-search summary:hover,
.ljf-header-search summary:focus-visible {
    color: var(--ljf-topbar-hover, #b98d9d);
}

.ljf-social-link svg,
.ljf-header-search summary svg {
    display: block;
    width: var(--ljf-topbar-icon-size, 17px);
    height: var(--ljf-topbar-icon-size, 17px);
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ljf-social-link svg .icon-fill { fill: currentColor; stroke: none; }
.ljf-social-link svg .icon-inverse { fill: var(--ljf-topbar-bg, #292725); stroke: none; }

.ljf-header-search { position: relative; }
.ljf-header-search summary { list-style: none; }
.ljf-header-search summary::-webkit-details-marker { display: none; }
.ljf-header-search-panel {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 1300;
    width: min(88vw, 360px);
    padding: 18px;
    background: var(--paper);
    border: 1px solid var(--stone);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
}
.ljf-header-search-panel .search-form { margin: 0; }
.ljf-mobile-menu-extras { display: none; }

/* Tablet and mobile navigation */
@media (max-width: 1024px) {
    body.menu-is-open { overflow: hidden; }

    .site-header > .header-inner {
        gap: 18px;
        width: min(calc(100% - 32px), var(--ljf-header-max-width, 1200px));
        min-height: 68px;
        padding: 10px 0;
    }

    .site-branding {
        flex: 1 1 auto;
        max-width: calc(100% - 66px);
    }

    .site-branding img,
    .site-branding .custom-logo {
        max-width: min(100%, var(--ljf-mobile-logo-max-width, 240px));
        max-height: 64px;
    }

    .menu-toggle {
        position: relative;
        z-index: 2002;
        display: inline-flex;
        flex: 0 0 48px;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        padding: 0;
        color: var(--ink);
        background: var(--paper);
        border: 1px solid var(--rose);
        border-radius: 50%;
        cursor: pointer;
    }

    .menu-toggle-lines {
        position: relative;
        display: block;
        width: 22px;
        height: 17px;
    }

    .menu-toggle-lines > span {
        position: absolute;
        left: 0;
        width: 22px;
        height: 1.5px;
        background: currentColor;
    }

    .menu-toggle-lines > span:nth-child(1) { top: 0; }
    .menu-toggle-lines > span:nth-child(2) { top: 7.5px; }
    .menu-toggle-lines > span:nth-child(3) { top: 15px; }

    .menu-toggle-close {
        display: none;
        width: 24px;
        height: 24px;
        overflow: visible;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        stroke-linecap: round;
        pointer-events: none;
    }

    .menu-toggle[aria-expanded="true"] {
        position: fixed;
        top: 22px;
        right: 22px;
        z-index: 2002;
        box-shadow: 0 8px 24px rgba(41, 39, 37, 0.18);
    }

    body.ljf-mobile-menu-from-left .menu-toggle[aria-expanded="true"] {
        right: auto;
        left: 22px;
    }

    .menu-toggle[aria-expanded="true"] .menu-toggle-lines { display: none; }
    .menu-toggle[aria-expanded="true"] .menu-toggle-close { display: block; }

    .main-navigation {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        z-index: 2001;
        display: block;
        width: min(88vw, var(--ljf-mobile-menu-width, 380px));
        max-width: var(--ljf-mobile-menu-width, 380px);
        height: 100dvh;
        margin: 0;
        padding: 110px 32px 48px;
        overflow-y: auto;
        visibility: hidden;
        color: var(--ljf-mobile-menu-text-colour, var(--ink));
        background: var(--ljf-mobile-menu-background, var(--paper));
        box-shadow: -15px 0 40px rgba(0, 0, 0, 0.08);
        opacity: 0;
        pointer-events: none;
        transform: translate3d(105%, 0, 0);
        transition: transform 280ms ease, opacity 180ms ease, visibility 280ms ease;
    }

    .main-navigation.is-open {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: translate3d(0, 0, 0);
    }

    body.ljf-mobile-menu-from-left .main-navigation {
        right: auto;
        left: 0;
        box-shadow: 15px 0 40px rgba(0, 0, 0, 0.08);
        transform: translate3d(-105%, 0, 0);
    }

    body.ljf-mobile-menu-from-left .main-navigation.is-open { transform: translate3d(0, 0, 0); }

    body.ljf-mobile-menu-fullscreen .main-navigation {
        right: 0;
        left: 0;
        width: 100vw;
        max-width: none;
        text-align: center;
        transform: translate3d(0, -105%, 0);
    }

    body.ljf-mobile-menu-fullscreen .main-navigation.is-open { transform: translate3d(0, 0, 0); }

    .main-navigation .primary-menu {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .main-navigation .primary-menu > li {
        position: relative;
        display: block;
        width: 100%;
        border-bottom: 1px solid var(--ljf-mobile-menu-divider, var(--stone));
    }

    .main-navigation.ljf-mobile-dividers-off .primary-menu > li {
        border-bottom: 0;
    }

    .main-navigation .primary-menu > li > a {
        display: block;
        min-height: 0;
        padding: 18px 0;
        color: var(--ljf-mobile-menu-text-colour, var(--ink));
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: var(--ljf-mobile-menu-font-size, 25px);
        font-weight: 500;
        letter-spacing: 0.02em;
        text-transform: none;
    }

    .main-navigation .primary-menu > li > a::before,
    .main-navigation .primary-menu > li > a::after { display: none; }

    .ljf-mobile-menu-align-left .main-navigation,
    .ljf-mobile-menu-align-left .main-navigation a { text-align: left; }
    .ljf-mobile-menu-align-center .main-navigation,
    .ljf-mobile-menu-align-center .main-navigation a { text-align: center; }
    .ljf-mobile-menu-align-right .main-navigation,
    .ljf-mobile-menu-align-right .main-navigation a { text-align: right; }

    .main-navigation .sub-menu {
        position: static;
        display: none;
        width: 100%;
        min-width: 0;
        margin: 0;
        padding: 0 0 10px 18px;
        visibility: visible;
        list-style: none;
        background: transparent;
        border: 0;
        box-shadow: none;
        opacity: 1;
        transform: none;
    }

    .main-navigation .submenu-is-open > .sub-menu { display: block; }

    .main-navigation .sub-menu a {
        display: block;
        padding: 10px 0;
        color: var(--ljf-mobile-menu-text-colour, var(--ink));
        font-family: var(--ljf-submenu-font, "Lora", Georgia, serif);
        font-size: 1rem;
        letter-spacing: 0;
        text-transform: none;
        opacity: 0.82;
    }

    .main-navigation .menu-item-has-children { padding-right: 44px; }
    .ljf-mobile-menu-align-right .main-navigation .menu-item-has-children { padding-right: 0; padding-left: 44px; }

    .ljf-submenu-toggle {
        position: absolute;
        top: 12px;
        right: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        padding: 0;
        color: var(--ljf-mobile-menu-text-colour, var(--ink));
        background: transparent;
        border: 0;
        cursor: pointer;
    }

    .ljf-mobile-menu-align-right .ljf-submenu-toggle { right: auto; left: 0; }

    .ljf-submenu-toggle::before,
    .ljf-submenu-toggle::after {
        content: "";
        position: absolute;
        width: 12px;
        height: 1px;
        background: currentColor;
        transition: transform 180ms ease;
    }

    .ljf-submenu-toggle::after { transform: rotate(90deg); }
    .ljf-submenu-toggle[aria-expanded="true"]::after { transform: rotate(0); }

    .main-navigation .ljf-menu-button-item > a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        margin: 12px 0;
        text-align: center !important;
        padding: var(--ljf-button-padding-y, 11px) var(--ljf-button-padding-x, 22px);
        color: var(--ljf-button-text, #fff);
        background: var(--ljf-button-background, var(--rose));
        border: 1px solid var(--ljf-button-border, var(--rose));
        border-radius: var(--ljf-button-radius, 4px);
    }

    .ljf-top-bar-mobile-move-to-menu,
    .ljf-top-bar-mobile-hide { display: none; }

    .ljf-top-bar-inner {
        width: min(calc(100% - 28px), var(--ljf-header-max-width, 1200px));
        justify-content: center;
        flex-wrap: wrap;
        text-align: center;
    }

    .ljf-mobile-menu-extras {
        display: grid;
        gap: 18px;
        margin: 24px 0;
        padding: 22px 0;
        color: var(--ljf-mobile-menu-text-colour, var(--ink));
        font-family: var(--ljf-topbar-font-family, inherit);
        border-top: 1px solid var(--ljf-mobile-menu-divider, var(--stone));
        border-bottom: 1px solid var(--ljf-mobile-menu-divider, var(--stone));
    }

    .main-navigation.ljf-mobile-dividers-off .ljf-mobile-menu-extras {
        border-top: 0;
        border-bottom: 0;
    }

    .ljf-mobile-menu-extras .ljf-top-bar-tools { justify-content: flex-start; flex-wrap: wrap; }
    .ljf-mobile-menu-extras .ljf-social-link,
    .ljf-mobile-menu-extras .ljf-header-search summary { color: var(--ljf-topbar-icon, rgba(255, 255, 255, 0.9)); }
    .ljf-mobile-menu-extras .ljf-social-link:hover,
    .ljf-mobile-menu-extras .ljf-social-link:focus-visible,
    .ljf-mobile-menu-extras .ljf-header-search summary:hover,
    .ljf-mobile-menu-extras .ljf-header-search summary:focus-visible { color: var(--ljf-topbar-hover, #b98d9d); }
    .ljf-mobile-menu-extras .ljf-header-search-panel { position: static; width: 100%; margin-top: 12px; box-shadow: none; }
}

@media (max-width: 600px) {
    .site-header > .header-inner { width: calc(100% - 28px); }
    .site-branding img,
    .site-branding .custom-logo { max-height: 58px; }
    .main-navigation { padding-right: 24px; padding-left: 24px; }
}

@media (max-width: 350px) {
    .menu-toggle { flex-basis: 44px; width: 44px; height: 44px; }
    .menu-toggle[aria-expanded="true"] { top: 16px; right: 16px; }
    body.ljf-mobile-menu-from-left .menu-toggle[aria-expanded="true"] { left: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .main-navigation,
    .primary-menu > li > a::after,
    .ljf-submenu-toggle::after { transition: none; }
}

/* ==========================================================
   Consolidated Fragment cards and single Fragment content
========================================================== */

.journal-card,
article.single-fragment {
    background: var(--paper);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.journal-card { padding: clamp(2rem, 5vw, 3.75rem); }
article.single-fragment { padding: clamp(2rem, 6vw, 3.75rem); text-align: center; }

.single-fragment-container,
.fragment-archive-container {
    width: min(calc(100% - 2rem), 56.25rem);
    margin: 6.25rem auto;
}

.single-fragment-title { margin-bottom: 0.9rem; }
.single-fragment-date,
.journal-card-date { opacity: 0.7; }
.single-fragment-date { margin-bottom: 2.5rem; }

.single-fragment-quote {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(2rem, 5vw, 2.4rem);
    font-style: italic;
    line-height: 1.5;
}

.journal-card { margin-bottom: 2.5rem; }


/* ==========================================================
   Header & Menu Builder v1.7.1 — final responsive safeguards
========================================================== */
@media (max-width: 1024px) {
    .site-header .menu-toggle[aria-expanded="true"] {
        position: fixed !important;
        top: 22px !important;
        right: 22px !important;
        left: auto !important;
        z-index: 2147483646 !important;
        display: inline-flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        color: var(--ink, #292725) !important;
        background: var(--paper, #ffffff) !important;
    }

    body.ljf-mobile-menu-from-left .site-header .menu-toggle[aria-expanded="true"] {
        right: auto !important;
        left: 22px !important;
    }

    .site-header .menu-toggle[aria-expanded="true"] .menu-toggle-lines {
        display: none !important;
    }

    .site-header .menu-toggle[aria-expanded="true"] .menu-toggle-close {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .site-header .main-navigation.ljf-mobile-dividers-off .primary-menu > li,
    body.ljf-mobile-menu-no-dividers .site-header .main-navigation .primary-menu > li {
        border-bottom: 0 !important;
    }

    .site-header .main-navigation.ljf-mobile-dividers-off .ljf-mobile-menu-extras,
    body.ljf-mobile-menu-no-dividers .site-header .main-navigation .ljf-mobile-menu-extras {
        border-top: 0 !important;
        border-bottom: 0 !important;
    }
}

@media (max-width: 600px) {
    .site-header .menu-toggle[aria-expanded="true"] {
        top: 16px !important;
        right: 16px !important;
    }

    body.ljf-mobile-menu-from-left .site-header .menu-toggle[aria-expanded="true"] {
        right: auto !important;
        left: 16px !important;
    }
}

/* ==========================================================
   v1.7.5 Social icon colour correction
   Ensure every SVG shape follows the Customiser icon colour
   in both the desktop top bar and mobile-menu copy.
========================================================== */
.ljf-top-bar .ljf-social-link,
.ljf-mobile-menu-extras .ljf-social-link,
.ljf-top-bar .ljf-header-search summary,
.ljf-mobile-menu-extras .ljf-header-search summary {
    color: var(--ljf-topbar-icon, rgba(255, 255, 255, 0.9)) !important;
}

.ljf-top-bar .ljf-social-link:hover,
.ljf-top-bar .ljf-social-link:focus-visible,
.ljf-mobile-menu-extras .ljf-social-link:hover,
.ljf-mobile-menu-extras .ljf-social-link:focus-visible,
.ljf-top-bar .ljf-header-search summary:hover,
.ljf-top-bar .ljf-header-search summary:focus-visible,
.ljf-mobile-menu-extras .ljf-header-search summary:hover,
.ljf-mobile-menu-extras .ljf-header-search summary:focus-visible {
    color: var(--ljf-topbar-hover, #b98d9d) !important;
}

.ljf-top-bar .ljf-social-link svg,
.ljf-mobile-menu-extras .ljf-social-link svg {
    color: inherit !important;
    fill: none !important;
    stroke: currentColor !important;
}

.ljf-top-bar .ljf-social-link svg path,
.ljf-top-bar .ljf-social-link svg circle,
.ljf-top-bar .ljf-social-link svg rect,
.ljf-top-bar .ljf-social-link svg line,
.ljf-top-bar .ljf-social-link svg polyline,
.ljf-top-bar .ljf-social-link svg polygon,
.ljf-mobile-menu-extras .ljf-social-link svg path,
.ljf-mobile-menu-extras .ljf-social-link svg circle,
.ljf-mobile-menu-extras .ljf-social-link svg rect,
.ljf-mobile-menu-extras .ljf-social-link svg line,
.ljf-mobile-menu-extras .ljf-social-link svg polyline,
.ljf-mobile-menu-extras .ljf-social-link svg polygon {
    fill: none !important;
    stroke: currentColor !important;
}

.ljf-top-bar .ljf-social-link svg .icon-fill,
.ljf-mobile-menu-extras .ljf-social-link svg .icon-fill {
    fill: currentColor !important;
    stroke: none !important;
}

.ljf-top-bar .ljf-social-link svg .icon-inverse {
    fill: var(--ljf-topbar-bg, #292725) !important;
    stroke: var(--ljf-topbar-bg, #292725) !important;
}

.ljf-mobile-menu-extras .ljf-social-link svg .icon-inverse {
    fill: var(--ljf-mobile-menu-background, var(--paper, #ffffff)) !important;
    stroke: var(--ljf-mobile-menu-background, var(--paper, #ffffff)) !important;
}

/* ==========================================================
   Hero Builder 2.0 — authoritative hero system
========================================================== */
.ljf-hero2 {
    position: relative;
    isolation: isolate;
    display: flex;
    width: 100%;
    min-height: 42rem;
    padding: var(--ljf-hero2-padding-y, 100px) 24px;
    overflow: hidden;
    color: var(--ljf-hero2-text, #292725);
    background-color: var(--ljf-hero2-background, #e8e4de);
    background-position: var(--ljf-hero2-image-position, center center);
    background-repeat: no-repeat;
    background-size: var(--ljf-hero2-image-fit, cover);
    text-align: center;
}
.ljf-hero2-height-compact { min-height: 28rem; }
.ljf-hero2-height-medium { min-height: 36rem; }
.ljf-hero2-height-viewport { min-height: clamp(36rem, 72vh, 54rem); }
.ljf-hero2-height-full { min-height: calc(100vh - 5rem); }
.ljf-hero2-valign-top { align-items: flex-start; }
.ljf-hero2-valign-center { align-items: center; }
.ljf-hero2-valign-bottom { align-items: flex-end; }
.ljf-hero2-overlay {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: transparent;
    pointer-events: none;
}
.ljf-hero2-has-image .ljf-hero2-overlay {
    background: var(--ljf-hero2-overlay, #fcfbf8);
    opacity: var(--ljf-hero2-overlay-opacity, .35);
}
.ljf-hero2-inner {
    position: relative;
    z-index: 1;
    width: min(100%, var(--ljf-hero2-content-width, 800px));
    max-width: var(--ljf-hero2-content-width, 800px);
    margin: 0 auto;
}
.ljf-hero2-align-left,
.ljf-hero2-align-left .ljf-hero2-inner { text-align: left; }
.ljf-hero2-align-center,
.ljf-hero2-align-center .ljf-hero2-inner { text-align: center; }
.ljf-hero2-align-right,
.ljf-hero2-align-right .ljf-hero2-inner { text-align: right; }
.ljf-hero2-eyebrow {
    margin: 0 0 1rem;
    color: var(--ljf-hero2-eyebrow, #9d6f80);
    font-family: var(--ljf-hero2-text-font, "Lora", Georgia, serif);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .2em;
    line-height: 1.4;
    text-transform: uppercase;
}
.ljf-hero2 .ljf-hero2-inner h1 {
    margin: 0;
    color: var(--ljf-hero2-text, #292725);
    font-family: var(--ljf-hero2-heading-font, "Cormorant Garamond", Georgia, serif) !important;
    font-size: clamp(2.8rem, 7vw, var(--ljf-hero2-heading-size, 72px)) !important;
    font-weight: var(--ljf-hero2-heading-weight, 400) !important;
    letter-spacing: var(--ljf-hero2-heading-spacing, 0) !important;
    line-height: var(--ljf-hero2-heading-line, 1.05) !important;
}
.ljf-hero2 .ljf-hero2-text {
    margin: 1.5rem 0 0;
    color: var(--ljf-hero2-text, #292725);
    font-family: var(--ljf-hero2-text-font, "Lora", Georgia, serif) !important;
    font-size: clamp(1rem, 2.5vw, var(--ljf-hero2-text-size, 21px)) !important;
    font-weight: var(--ljf-hero2-text-weight, 400) !important;
    line-height: var(--ljf-hero2-text-line, 1.7) !important;
}
.ljf-hero2-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ljf-hero2-button-gap, 16px);
    margin-top: 2.25rem;
}
.ljf-hero2-align-left .ljf-hero2-actions { justify-content: flex-start; }
.ljf-hero2-align-center .ljf-hero2-actions { justify-content: center; }
.ljf-hero2-align-right .ljf-hero2-actions { justify-content: flex-end; }
.ljf-hero2 .ljf-hero2-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3.25rem;
    margin: 0;
    padding: .85rem 1.6rem;
    border: 1px solid transparent;
    border-radius: var(--ljf-hero2-button-radius, 0);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ljf-hero2 a.ljf-hero2-button.ljf-hero2-button-primary {
    color: var(--ljf-hero2-primary-text, #ffffff) !important;
    background-color: var(--ljf-hero2-primary-bg, #e09695) !important;
    background-image: none !important;
    border-color: var(--ljf-hero2-primary-border, #e09695) !important;
}

.ljf-hero2 a.ljf-hero2-button.ljf-hero2-button-primary:hover,
.ljf-hero2 a.ljf-hero2-button.ljf-hero2-button-primary:focus,
.ljf-hero2 a.ljf-hero2-button.ljf-hero2-button-primary:focus-visible {
    color: var(--ljf-hero2-primary-hover-text, #ffffff) !important;
    background-color: var(--ljf-hero2-primary-hover-bg, #9d6f80) !important;
    background-image: none !important;
    border-color: var(--ljf-hero2-primary-hover-bg, #9d6f80) !important;
}

.ljf-hero2 a.ljf-hero2-button.ljf-hero2-button-secondary {
    color: var(--ljf-hero2-secondary-text, #292725) !important;
    background-color: var(--ljf-hero2-secondary-bg, #ffffff) !important;
    background-image: none !important;
    border-color: var(--ljf-hero2-secondary-border, #292725) !important;
}

.ljf-hero2 a.ljf-hero2-button.ljf-hero2-button-secondary:hover,
.ljf-hero2 a.ljf-hero2-button.ljf-hero2-button-secondary:focus,
.ljf-hero2 a.ljf-hero2-button.ljf-hero2-button-secondary:focus-visible {
    color: var(--ljf-hero2-secondary-hover-text, #ffffff) !important;
    background-color: var(--ljf-hero2-secondary-hover-bg, #292725) !important;
    background-image: none !important;
    border-color: var(--ljf-hero2-secondary-hover-bg, #292725) !important;
}
@media (max-width: 1024px) {
    .ljf-hero2 {
        min-height: 34rem;
        padding-top: var(--ljf-hero2-mobile-padding-y, 70px);
        padding-bottom: var(--ljf-hero2-mobile-padding-y, 70px);
    }
    .ljf-hero2-mobile-align-left,
    .ljf-hero2-mobile-align-left .ljf-hero2-inner { text-align: left; }
    .ljf-hero2-mobile-align-center,
    .ljf-hero2-mobile-align-center .ljf-hero2-inner { text-align: center; }
    .ljf-hero2-mobile-align-right,
    .ljf-hero2-mobile-align-right .ljf-hero2-inner { text-align: right; }
    .ljf-hero2-mobile-align-left .ljf-hero2-actions { justify-content: flex-start; }
    .ljf-hero2-mobile-align-center .ljf-hero2-actions { justify-content: center; }
    .ljf-hero2-mobile-align-right .ljf-hero2-actions { justify-content: flex-end; }
    .ljf-hero2 .ljf-hero2-inner h1 { font-size: var(--ljf-hero2-mobile-heading-size, 48px) !important; }
    .ljf-hero2 .ljf-hero2-text { font-size: var(--ljf-hero2-mobile-text-size, 18px) !important; }
}
@media (max-width: 600px) {
    .ljf-hero2 { padding-right: 18px; padding-left: 18px; }
    .ljf-hero2-actions { flex-direction: column; align-items: stretch; }
    .ljf-hero2 .ljf-hero2-button { width: 100%; }
}

/* ==========================================================
   Hero Builder 2.0.1 positioning and text-width correction
========================================================== */
.ljf-hero2 {
    padding-right: clamp(24px, 5vw, 88px);
    padding-left: clamp(24px, 5vw, 88px);
}

.ljf-hero2-stage {
    position: relative;
    z-index: 1;
    display: flex;
    width: min(100%, var(--ljf-hero2-stage-width, 1200px));
    margin: 0 auto;
}

.ljf-hero2-position-left .ljf-hero2-stage { justify-content: flex-start; }
.ljf-hero2-position-center .ljf-hero2-stage { justify-content: center; }
.ljf-hero2-position-right .ljf-hero2-stage { justify-content: flex-end; }

.ljf-hero2 .ljf-hero2-inner {
    width: min(100%, var(--ljf-hero2-content-width, 800px));
    max-width: var(--ljf-hero2-content-width, 800px);
    margin: 0 !important;
}

.ljf-hero2 .ljf-hero2-inner h1 {
    width: min(100%, var(--ljf-hero2-heading-width, 760px));
    max-width: var(--ljf-hero2-heading-width, 760px);
    text-wrap: balance;
}

.ljf-hero2 .ljf-hero2-text {
    width: min(100%, var(--ljf-hero2-intro-width, 620px));
    max-width: var(--ljf-hero2-intro-width, 620px);
}

.ljf-hero2-align-left .ljf-hero2-inner,
.ljf-hero2-align-left .ljf-hero2-inner h1,
.ljf-hero2-align-left .ljf-hero2-text {
    margin-right: auto;
    margin-left: 0;
    text-align: left;
}

.ljf-hero2-align-center .ljf-hero2-inner h1,
.ljf-hero2-align-center .ljf-hero2-text {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.ljf-hero2-align-right .ljf-hero2-inner h1,
.ljf-hero2-align-right .ljf-hero2-text {
    margin-right: 0;
    margin-left: auto;
    text-align: right;
}

@media (max-width: 1024px) {
    .ljf-hero2-mobile-align-left .ljf-hero2-inner h1,
    .ljf-hero2-mobile-align-left .ljf-hero2-text {
        margin-right: auto;
        margin-left: 0;
        text-align: left;
    }

    .ljf-hero2-mobile-align-center .ljf-hero2-inner h1,
    .ljf-hero2-mobile-align-center .ljf-hero2-text {
        margin-right: auto;
        margin-left: auto;
        text-align: center;
    }

    .ljf-hero2-mobile-align-right .ljf-hero2-inner h1,
    .ljf-hero2-mobile-align-right .ljf-hero2-text {
        margin-right: 0;
        margin-left: auto;
        text-align: right;
    }
}

/* ==========================================================
   v2.0.2 Top bar centred announcement correction
   Added without replacing Hero Builder 2.0.1 layout rules.
========================================================== */
@media (min-width: 1025px) {
    .ljf-top-bar-text-centred-tools-right .ljf-top-bar-inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        align-items: center;
        gap: 20px;
    }

    .ljf-top-bar-text-centred-tools-right .ljf-top-bar-message {
        grid-column: 2;
        justify-self: center;
        min-width: 0;
        text-align: center;
    }

    .ljf-top-bar-text-centred-tools-right .ljf-top-bar-tools {
        grid-column: 3;
        justify-self: end;
    }
}


/* ==========================================================
   Featured Journal Builder 1.0
========================================================== */

.featured-section.ljf-featured-journal {
    width: min(calc(100% - 2rem), var(--ljf-fj-max-width, 1100px));
    max-width: var(--ljf-fj-max-width, 1100px);
    margin: 0 auto;
    padding: var(--ljf-fj-padding, 60px);
    color: var(--ljf-fj-excerpt, #4b4744);
    background: var(--ljf-fj-section-bg, #ffffff);
    border: 1px solid var(--ljf-fj-border, #e8e4de);
    border-radius: var(--ljf-fj-radius, 12px);
    box-shadow: 0 10px 30px rgba(41, 39, 37, 0.04);
}

.ljf-featured-journal-header {
    margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.ljf-featured-journal-eyebrow {
    margin: 0 0 0.7rem;
    color: var(--ljf-fj-eyebrow, #9d6f80);
    font-family: var(--ljf-fj-body-font, "Lora", Georgia, serif);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    line-height: 1.4;
    text-transform: uppercase;
}

.featured-section.ljf-featured-journal .ljf-featured-journal-heading {
    margin: 0;
    color: var(--ljf-fj-heading, #292725);
    font-family: var(--ljf-fj-heading-font, "Cormorant Garamond", Georgia, serif);
    font-size: clamp(2rem, 5vw, var(--ljf-fj-heading-size, 42px));
    font-weight: 600;
    line-height: 1.05;
}

.ljf-featured-journal-card {
    display: grid;
    max-width: none;
    margin: 0;
    overflow: hidden;
    text-align: inherit;
    background: var(--ljf-fj-card-bg, #ffffff);
    border-radius: calc(var(--ljf-fj-radius, 12px) * 0.7);
}

.ljf-featured-journal-layout-stacked .ljf-featured-journal-card {
    grid-template-columns: minmax(0, 1fr);
}

.ljf-featured-journal-layout-image-left .ljf-featured-journal-card,
.ljf-featured-journal-layout-image-right .ljf-featured-journal-card {
    grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
    align-items: center;
    gap: var(--ljf-fj-gap, 40px);
}

.ljf-featured-journal-layout-image-right .ljf-featured-journal-image {
    order: 2;
}

.ljf-featured-journal-layout-image-right .ljf-featured-journal-content {
    order: 1;
}

.ljf-featured-journal-image {
    display: block;
    aspect-ratio: var(--ljf-fj-image-ratio, 4 / 3);
    margin: 0;
    overflow: hidden;
    border-radius: var(--ljf-fj-image-radius, 10px);
    background: var(--stone, #e8e4de);
}

.ljf-featured-journal-image img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: var(--ljf-fj-image-fit, cover);
    border-radius: inherit;
}

.ljf-featured-journal-layout-stacked .ljf-featured-journal-content {
    padding-top: clamp(1.75rem, 4vw, 3rem);
}

.ljf-featured-journal-content {
    min-width: 0;
}

.ljf-featured-journal-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.9rem;
    color: var(--ljf-fj-meta, #6e6965);
    font-family: var(--ljf-fj-body-font, "Lora", Georgia, serif);
    font-size: var(--ljf-fj-meta-size, 13px);
    letter-spacing: 0.06em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ljf-featured-journal-align-center .ljf-featured-journal-meta {
    justify-content: center;
}

.ljf-featured-journal-align-right .ljf-featured-journal-meta {
    justify-content: flex-end;
}

.ljf-featured-journal-title {
    margin: 0;
    color: var(--ljf-fj-title, #292725);
    font-family: var(--ljf-fj-title-font, "Cormorant Garamond", Georgia, serif);
    font-size: clamp(2rem, 5vw, var(--ljf-fj-title-size, 38px));
    font-weight: 500;
    line-height: 1.08;
}

.ljf-featured-journal-title a {
    color: inherit;
}

.ljf-featured-journal-title a:hover,
.ljf-featured-journal-title a:focus-visible {
    color: var(--ljf-fj-title-hover, #9d6f80);
}

.ljf-featured-journal-excerpt {
    margin-top: 1.25rem;
    color: var(--ljf-fj-excerpt, #4b4744);
    font-family: var(--ljf-fj-body-font, "Lora", Georgia, serif);
    font-size: var(--ljf-fj-excerpt-size, 17px);
    line-height: 1.8;
}

.ljf-featured-journal-excerpt p {
    margin: 0;
}

.ljf-featured-journal-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    margin-top: 1.75rem;
    padding: 0.8rem 1.5rem;
    color: var(--ljf-fj-button-text, #ffffff) !important;
    background: var(--ljf-fj-button-bg, #e09695);
    border: 1px solid var(--ljf-fj-button-border, #e09695);
    border-radius: var(--ljf-fj-button-radius, 0);
    font-family: var(--ljf-fj-body-font, "Lora", Georgia, serif);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ljf-featured-journal-button:hover,
.ljf-featured-journal-button:focus-visible {
    color: var(--ljf-fj-button-hover-text, #ffffff) !important;
    background: var(--ljf-fj-button-hover-bg, #9d6f80);
    border-color: var(--ljf-fj-button-hover-bg, #9d6f80);
}

.ljf-featured-journal-align-left,
.ljf-featured-journal-align-left .ljf-featured-journal-header,
.ljf-featured-journal-align-left .ljf-featured-journal-content {
    text-align: left;
}

.ljf-featured-journal-align-center,
.ljf-featured-journal-align-center .ljf-featured-journal-header,
.ljf-featured-journal-align-center .ljf-featured-journal-content {
    text-align: center;
}

.ljf-featured-journal-align-right,
.ljf-featured-journal-align-right .ljf-featured-journal-header,
.ljf-featured-journal-align-right .ljf-featured-journal-content {
    text-align: right;
}

@media (max-width: 900px) {
    .featured-section.ljf-featured-journal {
        padding: min(var(--ljf-fj-padding, 60px), 40px);
    }

    .ljf-featured-journal-layout-image-left .ljf-featured-journal-card,
    .ljf-featured-journal-layout-image-right .ljf-featured-journal-card {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .ljf-featured-journal-layout-image-right .ljf-featured-journal-image,
    .ljf-featured-journal-layout-image-right .ljf-featured-journal-content {
        order: initial;
    }

    .ljf-featured-journal-layout-image-left .ljf-featured-journal-content,
    .ljf-featured-journal-layout-image-right .ljf-featured-journal-content {
        padding-top: 2rem;
    }
}

@media (max-width: 600px) {
    .featured-section.ljf-featured-journal {
        width: calc(100% - 1.25rem);
        padding: 1.5rem;
        border-radius: min(var(--ljf-fj-radius, 12px), 18px);
    }
}


/* ==========================================================
   Chapters Builder 1.0
========================================================== */

.chapters-section.ljf-chapters {
    width: min(calc(100% - 2rem), var(--ljf-chapters-max-width, 1100px));
    max-width: var(--ljf-chapters-max-width, 1100px);
    margin: clamp(4rem, 8vw, 7rem) auto;
    padding: var(--ljf-chapters-padding, 60px);
    background: var(--ljf-chapters-section-bg, #ffffff);
    border: var(--ljf-chapters-section-border-width, 1px) solid var(--ljf-chapters-section-border, #e8e4de);
    border-radius: var(--ljf-chapters-section-radius, 12px);
    box-shadow: 0 10px 30px rgba(41, 39, 37, 0.04);
}

.ljf-chapters-header {
    margin-bottom: clamp(2rem, 5vw, 3rem);
}

.ljf-chapters-eyebrow {
    margin: 0 0 0.7rem;
    color: var(--ljf-chapters-eyebrow, #9d6f80);
    font-family: var(--ljf-chapters-body-font, "Lora", Georgia, serif);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    line-height: 1.4;
    text-transform: uppercase;
}

.chapters-section.ljf-chapters .ljf-chapters-heading {
    margin: 0;
    color: var(--ljf-chapters-heading, #292725);
    font-family: var(--ljf-chapters-heading-font, "Cormorant Garamond", Georgia, serif);
    font-size: clamp(2rem, 5vw, var(--ljf-chapters-heading-size, 42px));
    font-weight: 600;
    line-height: 1.05;
}

.ljf-chapters-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--ljf-chapters-gap, 30px);
}

.ljf-chapters-columns-2 .ljf-chapters-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ljf-chapters-columns-3 .ljf-chapters-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ljf-chapters-columns-4 .ljf-chapters-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ljf-chapters-columns-5 .ljf-chapters-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.ljf-chapter-card {
    min-width: 0;
    padding: var(--ljf-chapters-card-padding, 24px);
    text-align: inherit;
    background: var(--ljf-chapters-card-bg, #ffffff);
    border: 1px solid var(--ljf-chapters-card-border, #e8e4de);
    border-radius: var(--ljf-chapters-card-radius, 8px);
    transition:
        transform 250ms ease,
        box-shadow 250ms ease,
        border-color 250ms ease;
}

.ljf-chapter-card:hover,
.ljf-chapter-card:focus-within {
    border-color: var(--ljf-chapters-card-hover-border, #b98d9d);
    box-shadow: 0 16px 34px rgba(41, 39, 37, 0.08);
    transform: translateY(-4px);
}

.ljf-chapter-title {
    margin: 0;
    color: var(--ljf-chapters-title, #b98d9d);
    font-family: var(--ljf-chapters-title-font, "Cormorant Garamond", Georgia, serif);
    font-size: var(--ljf-chapters-title-size, 28px);
    font-weight: 600;
    line-height: 1.1;
}

.ljf-chapter-title a {
    color: inherit;
}

.ljf-chapter-title a:hover,
.ljf-chapter-title a:focus-visible {
    color: var(--ljf-chapters-title-hover, #9d6f80);
}

.ljf-chapter-description {
    margin: 0.85rem 0 0;
    color: var(--ljf-chapters-description, #4b4744);
    font-family: var(--ljf-chapters-body-font, "Lora", Georgia, serif);
    font-size: var(--ljf-chapters-description-size, 16px);
    line-height: 1.7;
}

.ljf-chapters-align-left,
.ljf-chapters-align-left .ljf-chapters-header,
.ljf-chapters-align-left .ljf-chapter-card {
    text-align: left;
}

.ljf-chapters-align-center,
.ljf-chapters-align-center .ljf-chapters-header,
.ljf-chapters-align-center .ljf-chapter-card {
    text-align: center;
}

.ljf-chapters-align-right,
.ljf-chapters-align-right .ljf-chapters-header,
.ljf-chapters-align-right .ljf-chapter-card {
    text-align: right;
}

.ljf-chapters-actions {
    margin-top: clamp(2rem, 5vw, 3rem);
    text-align: center;
}

.ljf-chapters-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    padding: 0.8rem 1.5rem;
    color: var(--ljf-chapters-button-text, #ffffff) !important;
    background: var(--ljf-chapters-button-bg, #e09695);
    border: 1px solid var(--ljf-chapters-button-border, #e09695);
    border-radius: var(--ljf-chapters-button-radius, 0);
    font-family: var(--ljf-chapters-body-font, "Lora", Georgia, serif);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ljf-chapters-button:hover,
.ljf-chapters-button:focus-visible {
    color: var(--ljf-chapters-button-hover-text, #ffffff) !important;
    background: var(--ljf-chapters-button-hover-bg, #9d6f80);
    border-color: var(--ljf-chapters-button-hover-bg, #9d6f80);
}

@media (max-width: 1024px) {
    .ljf-chapters-columns-4 .ljf-chapters-grid,
    .ljf-chapters-columns-5 .ljf-chapters-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .chapters-section.ljf-chapters {
        padding: min(var(--ljf-chapters-padding, 60px), 32px);
    }

    .ljf-chapters-grid,
    .ljf-chapters-columns-2 .ljf-chapters-grid,
    .ljf-chapters-columns-3 .ljf-chapters-grid,
    .ljf-chapters-columns-4 .ljf-chapters-grid,
    .ljf-chapters-columns-5 .ljf-chapters-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ljf-chapter-card {
        transition: none;
    }

    .ljf-chapter-card:hover,
    .ljf-chapter-card:focus-within {
        transform: none;
    }
}



/* ==========================================================
   Chapters Builder 1.0.1 corrections
========================================================== */

.ljf-chapters-subheading {
    width: min(100%, 48rem);
    margin: 1rem auto 0;
    color: var(--ljf-chapters-subheading, #4b4744);
    font-family: var(--ljf-chapters-body-font, "Lora", Georgia, serif);
    font-size: var(--ljf-chapters-subheading-size, 17px);
    line-height: 1.8;
}

.ljf-chapters-align-left .ljf-chapters-subheading {
    margin-right: auto;
    margin-left: 0;
}

.ljf-chapters-align-right .ljf-chapters-subheading {
    margin-right: 0;
    margin-left: auto;
}

/*
 * Apply the description setting at both markup and CSS level.
 * This also hides descriptions if an older cached template still
 * prints the paragraph while the new body class has loaded.
 */
.ljf-chapters-hide-descriptions .ljf-chapter-description,
.ljf-chapters-hide-descriptions .chapter-card > p {
    display: none !important;
}


/* ==========================================================
   Chapters Builder 1.0.2 — individual chapter links
========================================================== */

.ljf-chapter-card {
    display: flex;
    flex-direction: column;
}

.ljf-chapter-link {
    display: inline-flex;
    align-items: center;
    align-self: inherit;
    gap: 0.55rem;
    margin-top: auto;
    padding-top: 1.25rem;
    color: var(--ljf-chapters-card-link, #9d6f80);
    font-family: var(--ljf-chapters-body-font, "Lora", Georgia, serif);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-transform: uppercase;
}

.ljf-chapter-link span[aria-hidden="true"] {
    transition: transform 180ms ease;
}

.ljf-chapter-link:hover,
.ljf-chapter-link:focus-visible {
    color: var(--ljf-chapters-card-link-hover, #292725);
}

.ljf-chapter-link:hover span[aria-hidden="true"],
.ljf-chapter-link:focus-visible span[aria-hidden="true"] {
    transform: translateX(0.25rem);
}

.ljf-chapters-align-left .ljf-chapter-link {
    align-self: flex-start;
}

.ljf-chapters-align-center .ljf-chapter-link {
    align-self: center;
}

.ljf-chapters-align-right .ljf-chapter-link {
    align-self: flex-end;
}

@media (prefers-reduced-motion: reduce) {
    .ljf-chapter-link span[aria-hidden="true"] {
        transition: none;
    }

    .ljf-chapter-link:hover span[aria-hidden="true"],
    .ljf-chapter-link:focus-visible span[aria-hidden="true"] {
        transform: none;
    }
}


/* ==========================================================
   Fragments Builder 1.0
========================================================== */

.fragments-section.ljf-fragments {
    width: min(calc(100% - 2rem), var(--ljf-fragments-max-width, 1100px));
    max-width: var(--ljf-fragments-max-width, 1100px);
    margin: clamp(4rem, 8vw, 7rem) auto;
    padding: var(--ljf-fragments-padding, 60px);
    background: var(--ljf-fragments-section-bg, #ffffff);
    border: 1px solid var(--ljf-fragments-border, #e8e4de);
    border-radius: var(--ljf-fragments-section-radius, 12px);
    box-shadow: 0 10px 30px rgba(41, 39, 37, 0.04);
}

.ljf-fragments-header {
    margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.ljf-fragments-eyebrow {
    margin: 0 0 0.7rem;
    color: var(--ljf-fragments-eyebrow, #9d6f80);
    font-family: var(--ljf-fragments-body-font, "Lora", Georgia, serif);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    line-height: 1.4;
    text-transform: uppercase;
}

.fragments-section.ljf-fragments .ljf-fragments-heading {
    margin: 0;
    color: var(--ljf-fragments-heading, #292725);
    font-family: var(--ljf-fragments-heading-font, "Cormorant Garamond", Georgia, serif);
    font-size: clamp(2rem, 5vw, var(--ljf-fragments-heading-size, 42px));
    font-weight: 600;
    line-height: 1.05;
}

.ljf-fragments-subheading {
    width: min(100%, 48rem);
    margin: 1rem auto 0;
    color: var(--ljf-fragments-subheading, #4b4744);
    font-family: var(--ljf-fragments-body-font, "Lora", Georgia, serif);
    font-size: var(--ljf-fragments-subheading-size, 17px);
    line-height: 1.8;
}

.ljf-fragment-entry {
    display: grid;
    overflow: hidden;
    background: var(--ljf-fragments-card-bg, #ffffff);
    border-radius: var(--ljf-fragments-card-radius, 10px);
}

.ljf-fragments-layout-stacked .ljf-fragment-entry {
    grid-template-columns: 1fr;
}

.ljf-fragments-layout-image-left .ljf-fragment-entry,
.ljf-fragments-layout-image-right .ljf-fragment-entry {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.9fr);
    align-items: center;
    gap: var(--ljf-fragments-gap, 40px);
}

.ljf-fragments-layout-image-right .ljf-fragment-image {
    order: 2;
}

.ljf-fragments-layout-image-right .ljf-fragment-content {
    order: 1;
}

.ljf-fragment-image {
    display: block;
    aspect-ratio: var(--ljf-fragments-image-ratio, 4 / 3);
    overflow: hidden;
    border-radius: var(--ljf-fragments-image-radius, 10px);
    background: var(--stone, #e8e4de);
}

.ljf-fragment-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: var(--ljf-fragments-image-fit, cover);
    border-radius: inherit;
}

.ljf-fragments-layout-stacked .ljf-fragment-content {
    padding-top: clamp(1.75rem, 4vw, 3rem);
}

.fragments-section.ljf-fragments .ljf-fragment-quote {
    max-width: 850px;
    margin: 0 auto;
    padding: 0;
    color: var(--ljf-fragments-quote, #292725);
    font-family: var(--ljf-fragments-quote-font, "Cormorant Garamond", Georgia, serif);
    font-size: clamp(1.8rem, 4vw, var(--ljf-fragments-quote-size, 38px));
    font-style: italic;
    line-height: 1.4;
    border: 0;
}

.ljf-fragment-quote p {
    margin: 0;
}

.ljf-fragment-title {
    margin: 1.75rem 0 0;
    color: var(--ljf-fragments-title, #b98d9d);
    font-family: var(--ljf-fragments-body-font, "Lora", Georgia, serif);
    font-size: var(--ljf-fragments-title-size, 22px);
    font-weight: 600;
    line-height: 1.3;
}

.ljf-fragment-title a {
    color: inherit;
}

.ljf-fragment-title a:hover,
.ljf-fragment-title a:focus-visible {
    color: var(--ljf-fragments-title-hover, #9d6f80);
}

.ljf-fragment-date {
    display: block;
    margin-top: 0.75rem;
    color: var(--ljf-fragments-date, #6e6965);
    font-family: var(--ljf-fragments-body-font, "Lora", Georgia, serif);
    font-size: var(--ljf-fragments-date-size, 13px);
    letter-spacing: 0.08em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ljf-fragment-entry-link {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 1.5rem;
    color: var(--ljf-fragments-entry-link, #9d6f80);
    font-family: var(--ljf-fragments-body-font, "Lora", Georgia, serif);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-transform: uppercase;
}

.ljf-fragment-entry-link:hover,
.ljf-fragment-entry-link:focus-visible {
    color: var(--ljf-fragments-entry-link-hover, #292725);
}

.ljf-fragment-entry-link span[aria-hidden="true"] {
    transition: transform 180ms ease;
}

.ljf-fragment-entry-link:hover span[aria-hidden="true"],
.ljf-fragment-entry-link:focus-visible span[aria-hidden="true"] {
    transform: translateX(0.25rem);
}

.ljf-fragments-actions {
    margin-top: clamp(2rem, 5vw, 3rem);
    text-align: center;
}

.ljf-fragments-archive-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    padding: 0.8rem 1.5rem;
    color: var(--ljf-fragments-button-text, #ffffff) !important;
    background: var(--ljf-fragments-button-bg, #e09695);
    border: 1px solid var(--ljf-fragments-button-border, #e09695);
    border-radius: var(--ljf-fragments-button-radius, 0);
    font-family: var(--ljf-fragments-body-font, "Lora", Georgia, serif);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ljf-fragments-archive-button:hover,
.ljf-fragments-archive-button:focus-visible {
    color: var(--ljf-fragments-button-hover-text, #ffffff) !important;
    background: var(--ljf-fragments-button-hover-bg, #9d6f80);
    border-color: var(--ljf-fragments-button-hover-bg, #9d6f80);
}

.ljf-fragments-align-left,
.ljf-fragments-align-left .ljf-fragments-header,
.ljf-fragments-align-left .ljf-fragment-content {
    text-align: left;
}

.ljf-fragments-align-center,
.ljf-fragments-align-center .ljf-fragments-header,
.ljf-fragments-align-center .ljf-fragment-content {
    text-align: center;
}

.ljf-fragments-align-right,
.ljf-fragments-align-right .ljf-fragments-header,
.ljf-fragments-align-right .ljf-fragment-content {
    text-align: right;
}

.ljf-fragments-align-left .ljf-fragments-subheading,
.ljf-fragments-align-left .ljf-fragment-quote {
    margin-right: auto;
    margin-left: 0;
}

.ljf-fragments-align-right .ljf-fragments-subheading,
.ljf-fragments-align-right .ljf-fragment-quote {
    margin-right: 0;
    margin-left: auto;
}

@media (max-width: 900px) {
    .ljf-fragments-layout-image-left .ljf-fragment-entry,
    .ljf-fragments-layout-image-right .ljf-fragment-entry {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .ljf-fragments-layout-image-right .ljf-fragment-image,
    .ljf-fragments-layout-image-right .ljf-fragment-content {
        order: initial;
    }

    .ljf-fragments-layout-image-left .ljf-fragment-content,
    .ljf-fragments-layout-image-right .ljf-fragment-content {
        padding-top: 2rem;
    }
}

@media (max-width: 600px) {
    .fragments-section.ljf-fragments {
        width: calc(100% - 1.25rem);
        padding: min(var(--ljf-fragments-padding, 60px), 1.5rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ljf-fragment-entry-link span[aria-hidden="true"] {
        transition: none;
    }

    .ljf-fragment-entry-link:hover span[aria-hidden="true"],
    .ljf-fragment-entry-link:focus-visible span[aria-hidden="true"] {
        transform: none;
    }
}



/* ==========================================================
   Five-column footer correction 1.1
========================================================== */

.site-footer .footer-widgets {
    box-sizing: border-box;
    width: min(calc(100% - 40px), 1280px);
    max-width: 1280px;
}

.site-footer .footer-widget,
.site-footer .footer-widget * {
    min-width: 0;
    max-width: 100%;
}

.site-footer .footer-widget {
    overflow-wrap: anywhere;
    word-break: normal;
}

.site-footer .footer-widget img,
.site-footer .footer-widget iframe,
.site-footer .footer-widget video,
.site-footer .footer-widget table,
.site-footer .footer-widget input,
.site-footer .footer-widget select,
.site-footer .footer-widget textarea {
    width: 100%;
    max-width: 100%;
}

body.ljf-footer-columns-5 .site-footer .footer-widgets {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    column-gap: clamp(1rem, 2vw, 1.75rem);
    row-gap: clamp(2rem, 4vw, 3.5rem);
}

@media (max-width: 1280px) {
    body.ljf-footer-columns-5 .site-footer .footer-widgets {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}



/* ==========================================================
   Responsive footer heading containment 1.2
========================================================== */

.site-footer .footer-widget-title,
.site-footer .widget-title {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
}

@media (max-width: 760px) {
    .site-footer .footer-widget-title,
    .site-footer .widget-title {
        font-size: min(
            var(--ljf-footer-widget-title-size, 1.1rem),
            1.05rem
        );
        line-height: 1.25;
        letter-spacing: 0.045em;
    }
}

@media (max-width: 520px) {
    .site-footer .footer-widget-title,
    .site-footer .widget-title {
        font-size: min(
            var(--ljf-footer-widget-title-size, 1.1rem),
            1rem
        );
        line-height: 1.3;
        letter-spacing: 0.025em;
    }

    .site-footer .footer-widget {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }
}


/* ==========================================================
   Audited template and archive corrections 1.1.0
========================================================== */

.archive-container,
.fragment-archive-container {
    width: min(calc(100% - 2rem), 76rem);
    margin: clamp(4rem, 8vw, 7rem) auto;
}

.archive-header {
    margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
    text-align: center;
}

.archive-eyebrow {
    margin: 0 0 0.75rem;
    color: var(--rose-dark);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.archive-title {
    margin: 0;
    font-size: clamp(3rem, 8vw, 6rem);
    line-height: 1;
}

.archive-description {
    width: min(100%, 42rem);
    margin: 1.5rem auto 0;
}

.archive-description > *:last-child {
    margin-bottom: 0;
}

.archive-grid,
.fragment-archive-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
}

.archive-card,
.fragment-archive-grid .journal-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 0;
    overflow: hidden;
    background: var(--paper);
    border: 1px solid var(--stone);
    border-radius: 12px;
}

.archive-card-image,
.fragment-archive-grid .journal-card-image {
    display: block;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--stone);
}

.archive-card-image img,
.fragment-archive-grid .journal-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.archive-card-content,
.journal-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: clamp(1.5rem, 4vw, 2.25rem);
}

.archive-date,
.journal-card-date {
    margin: 0 0 0.8rem;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    opacity: 0.62;
    text-transform: uppercase;
}

.archive-card-title,
.journal-card-title {
    margin: 0 0 1rem;
    font-size: clamp(2rem, 4vw, 2.75rem);
    line-height: 1.05;
}

.archive-card-title a,
.journal-card-title a {
    color: var(--ink);
}

.archive-card-title a:hover,
.archive-card-title a:focus-visible,
.journal-card-title a:hover,
.journal-card-title a:focus-visible {
    color: var(--rose-dark);
}

.archive-card-excerpt,
.journal-card-excerpt {
    margin-bottom: 1rem;
}

.archive-read-more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 0.55rem;
    margin-top: auto;
    padding-top: 1rem;
    color: var(--rose-dark);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.archive-empty {
    padding: 4rem 2rem;
    text-align: center;
    background: var(--paper);
    border: 1px solid var(--stone);
}

.single-fragment-image {
    width: min(100%, 48rem);
    margin: 2.5rem auto;
    overflow: hidden;
    border-radius: 10px;
}

.single-fragment-image img {
    display: block;
    width: 100%;
    height: auto;
}

.single-fragment-quote.entry-content {
    width: min(100%, 46rem);
    margin-right: auto;
    margin-left: auto;
}

@media (max-width: 900px) {
    .archive-grid,
    .fragment-archive-grid {
        grid-template-columns: 1fr;
        width: min(100%, 40rem);
        margin-inline: auto;
    }
}

@media (max-width: 600px) {
    .archive-container,
    .fragment-archive-container {
        width: min(calc(100% - 1.25rem), 76rem);
        margin-block: 3.5rem;
    }
}


/* ==========================================================
   Layout, Fragment header, drop-cap and modal corrections 1.2.0
========================================================== */

/* The WordPress body class is also "single-fragment". Card styling must never
   apply to the body, otherwise the complete header and menu are displaced. */
body.single-fragment {
    padding: 0;
    text-align: initial;
    background: var(--background);
    border-radius: 0;
    box-shadow: none;
}

body.single-fragment .site-header {
    margin: 0;
    padding: 0;
    text-align: initial;
    border-radius: 0;
}

/* Sidebar master/context states. */
.content-with-sidebar.ljf-no-sidebar {
    grid-template-columns: minmax(0, 1fr);
    width: min(calc(100% - 40px), 1280px);
}

.content-with-sidebar.ljf-no-sidebar > #primary {
    width: 100%;
    max-width: 100%;
}

.content-with-sidebar.ljf-has-sidebar > #primary,
.content-with-sidebar.ljf-no-sidebar > #primary {
    min-width: 0;
}

@media (max-width: 480px) {
    .content-with-sidebar.ljf-no-sidebar {
        width: min(calc(100% - 24px), 1280px);
    }
}

/* Menu-triggered modal. */
body.ljf-modal-open {
    overflow: hidden;
}

.ljf-modal[hidden] {
    display: none !important;
}

.ljf-modal {
    position: fixed;
    z-index: 2147483647;
    inset: 0;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 4vw, 2.5rem);
}

.ljf-modal-backdrop {
    appearance: none;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    background: var(--ljf-modal-overlay, rgba(41, 39, 37, 0.68));
    border: 0;
    border-radius: 0;
    cursor: default;
    backdrop-filter: blur(4px);
}

.ljf-modal-backdrop:hover,
.ljf-modal-backdrop:focus {
    color: transparent !important;
    background: var(--ljf-modal-overlay, rgba(41, 39, 37, 0.68)) !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: none;
}

.ljf-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(100%, var(--ljf-modal-width, 640px));
    max-height: min(86vh, 900px);
    padding: clamp(2rem, 6vw, 4rem);
    overflow-y: auto;
    color: var(--ljf-modal-text, #292725);
    background: var(--ljf-modal-background, #ffffff);
    border: 1px solid rgba(232, 228, 222, 0.9);
    border-radius: 12px;
    box-shadow: 0 2rem 6rem rgba(20, 18, 18, 0.28);
}

.ljf-modal-title {
    margin: 0 3rem 1.5rem 0;
    color: var(--ljf-modal-text, #292725);
    font-size: clamp(2.4rem, 7vw, 4rem);
    line-height: 1;
}

.ljf-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    color: var(--ljf-modal-text, #292725);
    background: transparent;
    border: 1px solid rgba(41, 39, 37, 0.18);
    border-radius: 50%;
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

.ljf-modal-close:hover,
.ljf-modal-close:focus-visible {
    color: #ffffff;
    background: var(--ljf-modal-accent, #b98d9d);
    border-color: var(--ljf-modal-accent, #b98d9d);
}

.ljf-modal-content > *:first-child {
    margin-top: 0;
}

.ljf-modal-content > *:last-child {
    margin-bottom: 0;
}

.ljf-modal-content input:not([type="checkbox"]):not([type="radio"]),
.ljf-modal-content textarea,
.ljf-modal-content select {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

.ljf-modal-content .wpcf7-form-control-wrap,
.ljf-modal-content .wpcf7-form-control {
    max-width: 100%;
}

@media (max-width: 520px) {
    .ljf-modal {
        padding: 0.75rem;
    }

    .ljf-modal-dialog {
        max-height: 92vh;
        padding: 2.5rem 1.35rem 1.75rem;
    }

    .ljf-modal-title {
        margin-right: 2.5rem;
        font-size: 2.5rem;
    }
}


/* Preserve each template's intended width and breathing room inside the
   optional sidebar wrapper. */
.content-with-sidebar > .single-fragment-container,
.content-with-sidebar > .page-container,
.content-with-sidebar > .archive-container,
.content-with-sidebar > .fragment-archive-container,
.content-with-sidebar > .search-container {
    margin-top: clamp(4rem, 8vw, 6.25rem);
    margin-bottom: clamp(4rem, 8vw, 6.25rem);
}

.content-with-sidebar.ljf-no-sidebar > .single-fragment-container {
    max-width: 56.25rem;
    margin-right: auto;
    margin-left: auto;
}

.content-with-sidebar.ljf-no-sidebar > .page-container {
    max-width: 68.75rem;
    margin-right: auto;
    margin-left: auto;
}

.content-with-sidebar.ljf-no-sidebar > .archive-container,
.content-with-sidebar.ljf-no-sidebar > .fragment-archive-container,
.content-with-sidebar.ljf-no-sidebar > .search-container {
    max-width: 76rem;
    margin-right: auto;
    margin-left: auto;
}

.content-with-sidebar > .taxonomy-archive {
    margin: 0;
}

/* ==========================================================
   Contact Form 7 Customiser 1.2.1
========================================================== */

.wpcf7 form {
    margin: 0;
}

.wpcf7 form > p {
    margin: 0 0 1.25rem;
}

.wpcf7 form > p:last-of-type {
    margin-bottom: 0;
}

.wpcf7 label {
    display: block;
}

.wpcf7 input.wpcf7-form-control:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.wpcf7 textarea.wpcf7-form-control,
.wpcf7 select.wpcf7-form-control {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin-top: 0.4rem;
    padding: 0.85rem 1rem;
    font: inherit;
    line-height: 1.5;
    border-style: solid;
    border-width: 1px;
    border-radius: 4px;
    transition:
        color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        outline-color 180ms ease;
}

.wpcf7 textarea.wpcf7-form-control {
    min-height: 9rem;
    resize: vertical;
}

.wpcf7 input.wpcf7-submit,
.wpcf7 button.wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.9rem;
    padding: 0.75rem 1.5rem;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
    border-style: solid;
    border-width: 1px;
    border-radius: 4px;
    cursor: pointer;
}

.wpcf7 .wpcf7-not-valid-tip {
    display: block;
    margin-top: 0.45rem;
    font-size: 0.82rem;
    line-height: 1.45;
}

.wpcf7 form .wpcf7-response-output {
    margin: 1.5rem 0 0;
    padding: 0.9rem 1rem;
    border-style: solid;
    border-width: 1px;
    border-radius: 4px;
}

.wpcf7 .wpcf7-spinner {
    margin: 0 0.75rem;
}


/* ==========================================================
   404 Page Builder
========================================================== */

body.error404 .site-content-shell {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.error-page-container {
    position: relative;
    isolation: isolate;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: var(--ljf-404-space-below-header, 128px) max(1rem, calc((100% - var(--ljf-404-max-width, 960px)) / 2)) var(--ljf-404-space-above-footer, 128px);
    overflow: hidden;
    background: var(--ljf-404-page-bg, #faf8f4);
}

.ljf-404-background {
    position: absolute;
    z-index: -2;
    inset: 0;
    background-image: var(--ljf-404-background-image, none);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.ljf-404-background::after {
    position: absolute;
    content: "";
    inset: 0;
    background: var(--ljf-404-overlay, transparent);
}

.error-page {
    width: min(100%, var(--ljf-404-max-width, 960px));
    margin-inline: auto;
    color: var(--ljf-404-text-colour, #292725);
}

.ljf-404-has-card .error-page {
    padding: var(--ljf-404-inner-padding, 56px);
    background: var(--ljf-404-card-bg, #ffffff);
    border: 1px solid var(--ljf-404-card-border, #e8e4de);
    border-radius: var(--ljf-404-card-radius, 12px);
    box-shadow: 0 16px 44px rgba(41, 39, 37, 0.08);
}

.ljf-404-align-left .error-page {
    text-align: left;
}

.ljf-404-align-center .error-page {
    text-align: center;
}

.ljf-404-align-right .error-page {
    text-align: right;
}

.error-subtitle {
    margin: 0 0 1rem;
    color: var(--ljf-404-eyebrow-colour, #9d6f80);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    opacity: 1;
}

.error-title {
    margin: 0 0 1rem;
    color: var(--ljf-404-title-colour, #292725);
    font-size: clamp(4rem, 12vw, var(--ljf-404-title-size, 128px));
    line-height: 0.9;
}

.error-description {
    max-width: 40rem;
    margin: 0 auto 2.5rem;
    color: var(--ljf-404-text-colour, #292725);
    font-size: var(--ljf-404-description-size, 18px);
}

.error-description p:last-child {
    margin-bottom: 0;
}

.ljf-404-align-left .error-description,
.ljf-404-align-left .ljf-404-search-form {
    margin-left: 0;
    margin-right: auto;
}

.ljf-404-align-right .error-description,
.ljf-404-align-right .ljf-404-search-form {
    margin-left: auto;
    margin-right: 0;
}

.ljf-404-search-form {
    margin-top: 0;
    margin-bottom: 2rem;
}

.error-actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.ljf-404-align-left .error-actions {
    justify-content: flex-start;
}

.ljf-404-align-right .error-actions {
    justify-content: flex-end;
}

.error-page .button-primary,
.error-page .button-secondary {
    display: inline-flex;
    min-height: 48px;
    padding: 0.75rem 1.4rem;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    text-decoration: none;
}

.error-page .button-primary {
    color: var(--ljf-404-primary-text, #ffffff);
    background: var(--ljf-404-primary-bg, #9d6f80);
    border-color: var(--ljf-404-primary-bg, #9d6f80);
}

.error-page .button-secondary {
    color: var(--ljf-404-secondary-text, #292725);
    background: var(--ljf-404-secondary-bg, #ffffff);
    border-color: var(--ljf-404-secondary-border, #9d6f80);
}

@media (max-width: 600px) {
    .error-page-container {
        margin: 0;
        padding: max(3.5rem, calc(var(--ljf-404-space-below-header, 128px) * 0.55)) 0.75rem max(3.5rem, calc(var(--ljf-404-space-above-footer, 128px) * 0.55));
    }

    .ljf-404-has-card .error-page {
        padding: min(var(--ljf-404-inner-padding, 56px), 1.75rem);
    }

    .error-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .error-page .button-primary,
    .error-page .button-secondary {
        width: 100%;
    }
}



/* ==========================================================
   Fully collapsing scroll-aware top bar
========================================================== */

.site-header > .ljf-top-bar {
    max-height: var(--ljf-measured-topbar-height, 120px);
    overflow: hidden;
    opacity: 1;
    visibility: visible;
    transition:
        max-height 240ms ease,
        opacity 180ms ease,
        border-width 240ms ease,
        visibility 0s linear 0s;
    will-change: max-height, opacity;
}

.site-header > .ljf-top-bar > .ljf-top-bar-inner {
    transition: transform 240ms ease;
}

.site-header.ljf-topbar-is-hidden > .ljf-top-bar {
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    border-bottom-width: 0;
    pointer-events: none;
    transition:
        max-height 240ms ease,
        opacity 150ms ease,
        border-width 240ms ease,
        visibility 0s linear 240ms;
}

.site-header.ljf-topbar-is-hidden > .ljf-top-bar > .ljf-top-bar-inner {
    transform: translateY(-100%);
}

@media (prefers-reduced-motion: reduce) {
    .site-header > .ljf-top-bar,
    .site-header > .ljf-top-bar > .ljf-top-bar-inner {
        transition: none;
    }
}



/* ==========================================================
   Independent Accent, Chapter and Button Colours
========================================================== */

/*
 * Chapter headings and titles use the Chapters Builder colours rather than
 * the general Accent colour.
 */
.chapters-section > h2,
.chapters-section .ljf-chapters-heading,
.ljf-chapters-heading {
    color: var(--ljf-chapters-heading, var(--ink)) !important;
}

.chapters-section .chapter-card h3,
.chapters-section .chapter-card h3 a,
.ljf-chapter-title,
.ljf-chapter-title a {
    color: var(--ljf-chapters-title, var(--ink));
}

.chapters-section .chapter-card h3 a:hover,
.chapters-section .chapter-card h3 a:focus-visible,
.ljf-chapter-title a:hover,
.ljf-chapter-title a:focus-visible {
    color: var(--ljf-chapters-title-hover, var(--ink));
}

/*
 * Standard action buttons use dedicated button variables. Privacy controls,
 * navigation toggles, reading controls and Customizer ordering buttons retain
 * their own specialised styling.
 */
button:not(.menu-toggle):not(.ljf-submenu-toggle):not(.mobile-menu-close):not(.ljf-cookie-button):not(.ljf-cookie-text-button):not(.ljf-cookie-floating-button):not(.ljf-cookie-close):not(.ljf-search-close):not(.ljf-menu-modal-close):not(.ljf-modal-close):not(.ljf-modal-backdrop):not(.footer-legal-links__button):not(.reading-mode-toggle):not(.ljf-maintenance-sort-handle):not(.ljf-maintenance-move-up):not(.ljf-maintenance-move-down),
input[type="button"],
input[type="submit"],
input[type="reset"],
a.button,
.button,
.button-primary,
.button-secondary,
.fragment-button,
.wp-element-button,
.wp-block-button__link,
.ljf-featured-journal-button,
.ljf-chapters-button,
.ljf-fragments-archive-button,
.primary-menu > .ljf-menu-button-item > a,
.search-submit,
.wpcf7-submit {
    color: var(--button-text, #ffffff) !important;
    background-color: var(--button-accent, #e09695) !important;
    border-color: var(--button-accent, #e09695) !important;
}

button:not(.menu-toggle):not(.ljf-submenu-toggle):not(.mobile-menu-close):not(.ljf-cookie-button):not(.ljf-cookie-text-button):not(.ljf-cookie-floating-button):not(.ljf-cookie-close):not(.ljf-search-close):not(.ljf-menu-modal-close):not(.ljf-modal-close):not(.ljf-modal-backdrop):not(.footer-legal-links__button):not(.reading-mode-toggle):not(.ljf-maintenance-sort-handle):not(.ljf-maintenance-move-up):not(.ljf-maintenance-move-down):hover,
button:not(.menu-toggle):not(.ljf-submenu-toggle):not(.mobile-menu-close):not(.ljf-cookie-button):not(.ljf-cookie-text-button):not(.ljf-cookie-floating-button):not(.ljf-cookie-close):not(.ljf-search-close):not(.ljf-menu-modal-close):not(.ljf-modal-close):not(.ljf-modal-backdrop):not(.footer-legal-links__button):not(.reading-mode-toggle):not(.ljf-maintenance-sort-handle):not(.ljf-maintenance-move-up):not(.ljf-maintenance-move-down):focus-visible,
input[type="button"]:hover,
input[type="button"]:focus-visible,
input[type="submit"]:hover,
input[type="submit"]:focus-visible,
input[type="reset"]:hover,
input[type="reset"]:focus-visible,
a.button:hover,
a.button:focus-visible,
.button:hover,
.button:focus-visible,
.button-primary:hover,
.button-primary:focus-visible,
.button-secondary:hover,
.button-secondary:focus-visible,
.fragment-button:hover,
.fragment-button:focus-visible,
.wp-element-button:hover,
.wp-element-button:focus-visible,
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.ljf-featured-journal-button:hover,
.ljf-featured-journal-button:focus-visible,
.ljf-chapters-button:hover,
.ljf-chapters-button:focus-visible,
.ljf-fragments-archive-button:hover,
.ljf-fragments-archive-button:focus-visible,
.primary-menu > .ljf-menu-button-item > a:hover,
.primary-menu > .ljf-menu-button-item > a:focus-visible,
.search-submit:hover,
.search-submit:focus-visible,
.wpcf7-submit:hover,
.wpcf7-submit:focus-visible {
    color: var(--button-text, #ffffff) !important;
    background-color: var(--button-hover, #c97979) !important;
    border-color: var(--button-hover, #c97979) !important;
}

/* ==========================================================
   Journal / Blog Layout Builder
========================================================== */

/*
 * The Journal classes belong only to this content wrapper. Keeping the
 * required content-with-sidebar class allows the established theme layout
 * system and the new Journal options to work together.
 */
.content-with-sidebar.ljf-journal {
    box-sizing: border-box;
    display: grid;
    width: min(
        calc(100% - 2rem),
        var(--ljf-journal-max-width, 1216px)
    );
    max-width: var(--ljf-journal-max-width, 1216px);
    margin: clamp(4rem, 8vw, 7rem) auto;
    align-items: start;
    gap: clamp(2rem, 5vw, 4rem);
}

.content-with-sidebar.ljf-journal.ljf-no-sidebar {
    grid-template-columns: minmax(0, 1fr);
}

.content-with-sidebar.ljf-journal.ljf-has-sidebar.ljf-journal-sidebar-right {
    grid-template-columns: minmax(0, 1fr) 260px;
}

.content-with-sidebar.ljf-journal.ljf-has-sidebar.ljf-journal-sidebar-left {
    grid-template-columns: 260px minmax(0, 1fr);
}

.content-with-sidebar.ljf-journal > #primary {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
}

.content-with-sidebar.ljf-journal > #secondary {
    box-sizing: border-box;
    display: block;
    width: 260px;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    position: static;
}

.content-with-sidebar.ljf-journal.ljf-journal-sidebar-left > #secondary {
    grid-column: 1;
    grid-row: 1;
}

.content-with-sidebar.ljf-journal.ljf-journal-sidebar-left > #primary {
    grid-column: 2;
    grid-row: 1;
}

.content-with-sidebar.ljf-journal.ljf-journal-sidebar-right > #primary {
    grid-column: 1;
    grid-row: 1;
}

.content-with-sidebar.ljf-journal.ljf-journal-sidebar-right > #secondary {
    grid-column: 2;
    grid-row: 1;
}

.ljf-journal-header {
    margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
    text-align: center;
}

.ljf-journal-heading-left .ljf-journal-header {
    text-align: left;
}

.ljf-journal-heading-right .ljf-journal-header {
    text-align: right;
}

.ljf-journal-description {
    width: min(100%, 46rem);
    margin: 1.4rem auto 0;
}

.ljf-journal-heading-left .ljf-journal-description {
    margin-right: auto;
    margin-left: 0;
}

.ljf-journal-heading-right .ljf-journal-description {
    margin-right: 0;
    margin-left: auto;
}

.ljf-journal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ljf-journal-gap, 32px);
}

.ljf-journal-columns-1 .ljf-journal-grid {
    grid-template-columns: minmax(0, 1fr);
}

.ljf-journal-columns-2 .ljf-journal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ljf-journal-columns-3 .ljf-journal-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ljf-journal-card {
    min-width: 0;
    border-radius: var(--ljf-journal-card-radius, 12px);
}

.ljf-journal-card .ljf-journal-card-content {
    padding: var(--ljf-journal-card-padding, 32px);
}

.ljf-journal-card-boxed .ljf-journal-card {
    background: var(--paper);
    border: 1px solid var(--stone);
    box-shadow: 0 10px 30px rgba(41, 39, 37, 0.04);
}

.ljf-journal-card-outline .ljf-journal-card {
    background: transparent;
    border: 1px solid var(--stone);
    box-shadow: none;
}

.ljf-journal-card-minimal .ljf-journal-card {
    overflow: visible;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.ljf-journal-card-minimal .ljf-journal-card-content {
    padding-right: 0;
    padding-left: 0;
}

.ljf-journal-cards-center .ljf-journal-card-content {
    align-items: center;
    text-align: center;
}

.ljf-journal-cards-right .ljf-journal-card-content {
    align-items: flex-end;
    text-align: right;
}

.ljf-journal-cards-center .archive-read-more {
    align-self: center;
}

.ljf-journal-cards-right .archive-read-more {
    align-self: flex-end;
}

.ljf-journal-card-image {
    border-radius:
        var(--ljf-journal-card-radius, 12px)
        var(--ljf-journal-card-radius, 12px)
        0
        0;
}

.ljf-journal-image-landscape .ljf-journal-card-image {
    aspect-ratio: 3 / 2;
}

.ljf-journal-image-wide .ljf-journal-card-image {
    aspect-ratio: 16 / 9;
}

.ljf-journal-image-square .ljf-journal-card-image {
    aspect-ratio: 1 / 1;
}

.ljf-journal-image-portrait .ljf-journal-card-image {
    aspect-ratio: 4 / 5;
}

.ljf-journal-image-natural .ljf-journal-card-image {
    aspect-ratio: auto;
}

.ljf-journal-image-natural .ljf-journal-card-image img {
    height: auto;
    object-fit: contain;
}

.ljf-journal-layout-featured-first .ljf-journal-card:first-child {
    grid-column: 1 / -1;
}

.ljf-journal-layout-featured-first
.ljf-journal-card:first-child
.archive-card-title {
    font-size: clamp(2.8rem, 6vw, 4.8rem);
}

.ljf-journal-layout-list .ljf-journal-grid {
    grid-template-columns: minmax(0, 1fr);
}

.ljf-journal-layout-list .ljf-journal-card {
    display: grid;
    grid-template-columns: minmax(14rem, 38%) minmax(0, 1fr);
    align-items: stretch;
}

.ljf-journal-layout-list
.ljf-journal-card:not(:has(.ljf-journal-card-image)) {
    grid-template-columns: minmax(0, 1fr);
}

.ljf-journal-layout-list .ljf-journal-card-image {
    height: 100%;
    min-height: 18rem;
    border-radius:
        var(--ljf-journal-card-radius, 12px)
        0
        0
        var(--ljf-journal-card-radius, 12px);
    aspect-ratio: auto;
}

.ljf-journal-layout-list .ljf-journal-card-image img {
    height: 100%;
}

@media (max-width: 1100px) {
    .ljf-journal-columns-3 .ljf-journal-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .content-with-sidebar.ljf-journal,
    .content-with-sidebar.ljf-journal.ljf-has-sidebar.ljf-journal-sidebar-left,
    .content-with-sidebar.ljf-journal.ljf-has-sidebar.ljf-journal-sidebar-right {
        grid-template-columns: minmax(0, 1fr);
    }

    .content-with-sidebar.ljf-journal > #primary,
    .content-with-sidebar.ljf-journal > #secondary,
    .content-with-sidebar.ljf-journal.ljf-journal-sidebar-left > #primary,
    .content-with-sidebar.ljf-journal.ljf-journal-sidebar-left > #secondary,
    .content-with-sidebar.ljf-journal.ljf-journal-sidebar-right > #primary,
    .content-with-sidebar.ljf-journal.ljf-journal-sidebar-right > #secondary {
        grid-column: 1;
        grid-row: auto;
        width: 100%;
    }

    .content-with-sidebar.ljf-journal > #primary {
        order: 1;
    }

    .content-with-sidebar.ljf-journal > #secondary {
        order: 2;
    }

    .ljf-journal-layout-list .ljf-journal-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .ljf-journal-layout-list .ljf-journal-card-image {
        min-height: 0;
        border-radius:
            var(--ljf-journal-card-radius, 12px)
            var(--ljf-journal-card-radius, 12px)
            0
            0;
        aspect-ratio: 3 / 2;
    }
}

@media (max-width: 680px) {
    .ljf-journal-grid,
    .ljf-journal-columns-2 .ljf-journal-grid,
    .ljf-journal-columns-3 .ljf-journal-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .ljf-journal-card .ljf-journal-card-content {
        padding: min(
            var(--ljf-journal-card-padding, 32px),
            26px
        );
    }
}

/* ==========================================================
   Standard Page Layout
========================================================== */

.page-container {
    box-sizing: border-box;
    width: min(
        calc(100% - 2rem),
        var(--ljf-standard-page-outer-width, 1280px)
    );
    max-width: var(--ljf-standard-page-outer-width, 1280px);
    margin: 0 auto;
    padding: 0;
}

.page-content {
    box-sizing: border-box;
    width: 100%;
    max-width: var(
        --ljf-standard-page-content-width,
        1100px
    );
    padding: var(
        --ljf-standard-page-inner-padding,
        60px
    );
}

/*
 * Pages displayed beside the optional widget sidebar should use all of the
 * available main-content column while retaining the selected card padding.
 */
.content-with-sidebar > .page-container {
    width: 100%;
    max-width: 100%;
    margin: 0;
}

.content-with-sidebar > .page-container .page-content {
    max-width: 100%;
}

@media (max-width: 700px) {
    .page-container {
        width: min(
            calc(100% - 1.25rem),
            var(--ljf-standard-page-outer-width, 1280px)
        );
    }

    .page-content {
        padding: min(
            var(--ljf-standard-page-inner-padding, 60px),
            32px
        );
    }
}

/* Standard page presentation. */
body:not(.error404) .site-content-shell {
    background-color: var(--background, #ffffff);
}

body.ljf-standard-page-plain .page-content {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

body.ljf-standard-page-card .page-content {
    background: var(--ljf-standard-page-card-background, #ffffff);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

/* ==========================================================
   Global Page Spacing Compatibility — 1.6.7
========================================================== */

/*
 * .site-content-shell owns the outer space beneath the header and above the
 * footer. Legacy template margins are neutralised here so they cannot double
 * the Customizer values.
 */
.site-content-shell > .content-with-sidebar,
.site-content-shell > .page-container,
.site-content-shell > .archive-container,
.site-content-shell > .fragment-archive-container,
.site-content-shell > .single-post-container,
.site-content-shell > .single-fragment-container,
.site-content-shell > .search-container {
    margin-top: 0;
    margin-bottom: 0;
}

.site-content-shell > .content-with-sidebar > #primary,
.site-content-shell > .content-with-sidebar > .page-container,
.site-content-shell > .content-with-sidebar > .archive-container,
.site-content-shell > .content-with-sidebar > .fragment-archive-container,
.site-content-shell > .content-with-sidebar > .single-post-container,
.site-content-shell > .content-with-sidebar > .single-fragment-container,
.site-content-shell > .content-with-sidebar > .search-container {
    margin-top: 0;
    margin-bottom: 0;
}

/* A leading slider begins exactly at the shell's globally controlled edge. */
.site-content-shell .content-with-sidebar.ljf-has-leading-slider,
.site-content-shell .content-with-sidebar.ljf-has-leading-slider >
.ljf-slider-above-sidebar {
    margin-top: 0 !important;
}

/* ==========================================================
   Homepage Newsletter Introduction
========================================================== */

.ljf-newsletter {
    text-align: center;
}

.ljf-newsletter-inner {
    width: min(100%, 48rem);
    margin: 0 auto;
}

.ljf-newsletter-heading {
    margin-top: 0;
}

.ljf-newsletter-introduction {
    font-size: clamp(1rem, 2vw, 1.2rem);
    line-height: 1.75;
}

.ljf-newsletter-introduction > *:first-child {
    margin-top: 0;
}

.ljf-newsletter-introduction > *:last-child {
    margin-bottom: 0;
}

.ljf-newsletter form,
.ljf-newsletter .wpcf7 {
    margin-top: 2rem;
}

/* ==========================================================
   Comments and Paginated Content
========================================================== */

.page-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-top: 2rem;
    font-size: 0.9rem;
}

.page-links .post-page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    min-height: 2.25rem;
    padding: 0.35rem 0.65rem;
    border: 1px solid var(--stone, #e8e4de);
    text-decoration: none;
}

.page-links .post-page-numbers.current {
    color: var(--button-text, #ffffff);
    background: var(--button-accent, #e09695);
    border-color: var(--button-accent, #e09695);
}

.comments-area {
    box-sizing: border-box;
    width: min(100%, 900px);
    margin: clamp(3rem, 7vw, 6rem) auto 0;
    padding: clamp(1.5rem, 4vw, 3rem);
    background: var(--paper, #ffffff);
    border: 1px solid var(--stone, #e8e4de);
    border-radius: 12px;
}

.comments-title,
.comment-reply-title {
    margin-top: 0;
}

.comment-list,
.comment-list .children {
    list-style: none;
    margin: 0;
    padding: 0;
}

.comment-list .children {
    margin-left: clamp(1rem, 4vw, 3rem);
}

.comment-body {
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--stone, #e8e4de);
}

.comment-meta {
    margin-bottom: 0.75rem;
    font-size: 0.88rem;
}

.comment-author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.comment-author .avatar {
    border-radius: 999px;
}

.comment-content > *:last-child {
    margin-bottom: 0;
}

.comment-form label {
    display: block;
    margin-bottom: 0.4rem;
}

.comment-form input:not([type="submit"]),
.comment-form textarea {
    width: 100%;
}

.comment-navigation {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin: 1.5rem 0;
}

.no-comments {
    font-style: italic;
}


/* ==========================================================
   Literary Journal Foundation — Recent Posts widget
========================================================== */

.ljf-recent-posts-list {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ljf-recent-posts-list > li {
    display: grid;
    grid-template-columns: minmax(0, var(--ljf-recent-image-width, 80px)) minmax(0, 1fr);
    gap: 0.9rem;
    align-items: start;
    margin: 0;
    padding: 0;
    border: 0;
}

.ljf-recent-posts-list > li.no-post-thumbnail {
    grid-template-columns: minmax(0, 1fr);
}

.ljf-recent-post-image {
    display: block;
    width: var(--ljf-recent-image-width, 80px);
    height: var(--ljf-recent-image-height, 60px);
    overflow: hidden;
    background: rgba(40, 30, 30, 0.05);
    border: 0;
    text-decoration: none;
}

.ljf-recent-post-image img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    object-position: center;
}

.ljf-recent-posts-list--round-images .ljf-recent-post-image {
    border-radius: 999px;
}

.ljf-recent-post-content {
    min-width: 0;
}

.ljf-recent-post-title {
    display: inline;
    color: inherit;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.35;
    text-decoration: none;
}

.ljf-recent-post-title:hover,
.ljf-recent-post-title:focus-visible {
    color: var(--accent-color, #a96373);
}

.ljf-recent-post-excerpt {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    line-height: 1.5;
    opacity: 0.78;
}

@media (max-width: 420px) {
    .ljf-recent-posts-list > li {
        gap: 0.75rem;
    }
}

/* ---------------------------------------------------------
   Back to top button
--------------------------------------------------------- */
.ljf-back-to-top {
    position: fixed;
    z-index: 9000;
    bottom: var(--ljf-back-to-top-bottom, 24px);
    display: inline-grid;
    width: var(--ljf-back-to-top-size, 48px);
    height: var(--ljf-back-to-top-size, 48px);
    margin: 0;
    padding: 0;
    place-items: center;
    color: var(--ljf-back-to-top-icon, #ffffff);
    background: var(--ljf-back-to-top-bg, #e09695);
    border: 1px solid transparent;
    border-radius: var(--ljf-back-to-top-radius, 50%);
    box-shadow: 0 8px 24px rgba(41, 39, 37, 0.18);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);
    transition:
        opacity 180ms ease,
        visibility 180ms ease,
        transform 180ms ease,
        color 180ms ease,
        background-color 180ms ease,
        box-shadow 180ms ease;
}

.ljf-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.ljf-back-to-top svg {
    width: 48%;
    height: 48%;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ljf-back-to-top:hover,
.ljf-back-to-top:focus-visible {
    color: var(--ljf-back-to-top-hover-icon, #ffffff);
    background: var(--ljf-back-to-top-hover-bg, #9d6f80);
    box-shadow: 0 11px 28px rgba(41, 39, 37, 0.25);
    transform: translateY(-3px);
}

.ljf-back-to-top:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.ljf-back-to-top:disabled {
    cursor: default;
}

@media (max-width: 600px) {
    .ljf-back-to-top {
        --ljf-back-to-top-side: min(18px, 4vw);
        --ljf-back-to-top-bottom: min(18px, 4vw);
        width: min(var(--ljf-back-to-top-size, 48px), 46px);
        height: min(var(--ljf-back-to-top-size, 48px), 46px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ljf-back-to-top {
        transition: none;
    }
}
