/* ==========================================================================
   1. Design variables
   ========================================================================== */

:root {
    --color-page: #f5f1eb;
    --color-surface: #ffffff;
    --color-surface-soft: #faf8f4;
    --color-header: #1f2937;
    --color-header-secondary: #2c3a4b;
    --color-text: #1f2937;
    --color-text-muted: #5f6875;
    --color-heading: #111827;
    --color-border: #dfe3e8;
    --color-border-warm: #e7dfd2;
    --color-accent: #a63d40;
    --color-accent-hover: #8e3336;
    --color-highlight: #d4a373;
    --color-focus: #2563eb;
    --color-success: #176c43;
    --color-danger: #b42318;

    --shadow-small: 0 2px 8px rgba(15, 23, 42, 0.06);
    --shadow-card: 0 10px 30px rgba(15, 23, 42, 0.07);
    --shadow-raised: 0 16px 40px rgba(15, 23, 42, 0.12);

    --radius-small: 6px;
    --radius-medium: 10px;
    --radius-large: 16px;

    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;

    --sidebar-left-min: 220px;
    --sidebar-right-min: 240px;
}


/* ==========================================================================
   2. Reset and base elements
   ========================================================================== */

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

html {
    min-width: 320px;
    scroll-behavior: smooth;
}

body {
    min-width: 320px;
    min-height: 100vh;
    margin: 0;
    background: var(--color-page);
    color: var(--color-text);
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    font-size: 1rem;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
}

img,
svg,
video {
    display: block;
    max-width: 100%;
}

img {
    height: auto;
}

button,
input,
select,
textarea {
    font: inherit;
}

a {
    color: var(--color-accent);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

a:hover {
    color: var(--color-accent-hover);
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

:focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 3px;
}

[hidden] {
    display: none !important;
}


/* ==========================================================================
   3. Typography
   ========================================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0 0 var(--space-4);
    color: var(--color-heading);
    font-weight: 750;
    line-height: 1.2;
    text-wrap: balance;
}

h1 {
    font-size: clamp(2rem, 4vw, 3.75rem);
}

h2 {
    font-size: clamp(1.4rem, 2.3vw, 2rem);
}

h3 {
    font-size: clamp(1.1rem, 1.7vw, 1.35rem);
}

p,
ul,
ol {
    margin-top: 0;
    margin-bottom: var(--space-4);
}

p:last-child,
ul:last-child,
ol:last-child {
    margin-bottom: 0;
}

.eyebrow {
    margin-bottom: var(--space-2);
    color: var(--color-accent);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.muted {
    color: var(--color-text-muted);
}


/* ==========================================================================
   4. Header and navigation
   ========================================================================== */

.skip-link {
    position: fixed;
    z-index: 1000;
    top: var(--space-3);
    left: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-small);
    background: var(--color-surface);
    color: var(--color-heading);
    box-shadow: var(--shadow-raised);
    transform: translateY(-200%);
}

.skip-link:focus {
    transform: translateY(0);
}

.site-header,
.auth-header {
    position: relative;
    z-index: 20;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--space-6);
    align-items: center;
    width: 100%;
    padding: var(--space-4) clamp(1rem, 2.5vw, 2.5rem);
    border-bottom: 1px solid #374151;
    background: var(--color-header);
    color: #ffffff;
}

.brand {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    text-decoration: none;
}

.brand__logo {
    width: auto;
    max-width: min(220px, 42vw);
    height: 58px;
    object-fit: contain;
}

.main-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-5);
    align-items: center;
    justify-content: center;
    min-width: 0;
}

.main-nav a,
.header-actions a,
.auth-header__back {
    color: #f9fafb;
    font-weight: 650;
    text-decoration: none;
}

.main-nav a:hover,
.header-actions a:hover,
.auth-header__back:hover {
    color: var(--color-highlight);
}

.header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
    justify-content: flex-end;
}


/* ==========================================================================
   5. Page grid and primary layouts
   ========================================================================== */

.page-shell {
    display: grid;
    grid-template-areas: "left main right";
    grid-template-columns:
        minmax(var(--sidebar-left-min), 1fr)
        minmax(0, 2.75fr)
        minmax(var(--sidebar-right-min), 1.25fr);
    gap: clamp(1rem, 1.8vw, 2rem);
    align-items: start;
    width: 100%;
    padding: clamp(1rem, 2vw, 2rem);
}

.main-column {
    grid-area: main;
    min-width: 0;
}

.left-sidebar {
    grid-area: left;
    min-width: 0;
}

.right-sidebar {
    grid-area: right;
    min-width: 0;
}

.main-column,
.left-sidebar,
.right-sidebar {
    overflow-wrap: anywhere;
}

.section-block {
    margin-top: var(--space-8);
}

.section-heading {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: var(--space-5);
}

.section-heading h2 {
    margin-bottom: 0;
}


/* ==========================================================================
   6. Components
   ========================================================================== */

.card {
    min-width: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-large);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
}

.hero {
    padding: clamp(1.5rem, 4vw, 4rem);
    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 1) 0%,
            rgba(250, 248, 244, 1) 100%
        );
}

.hero h1 {
    max-width: 20ch;
}

.hero__lead {
    max-width: 70ch;
    color: var(--color-text-muted);
    font-size: clamp(1.05rem, 1.7vw, 1.25rem);
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-6);
}

.button,
button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0.7rem 1.1rem;
    border: 1px solid var(--color-accent);
    border-radius: var(--radius-small);
    background: var(--color-accent);
    color: #ffffff;
    font-weight: 750;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.button:hover,
button:hover {
    border-color: var(--color-accent-hover);
    background: var(--color-accent-hover);
    color: #ffffff;
}

.button--secondary {
    border-color: var(--color-border);
    background: var(--color-surface);
    color: var(--color-heading);
}

.button--secondary:hover {
    border-color: var(--color-heading);
    background: var(--color-heading);
    color: #ffffff;
}

.button--small {
    min-height: 38px;
    padding: 0.5rem 0.85rem;
    font-size: 0.9rem;
}

.button--full {
    width: 100%;
}

.book-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 280px), 1fr)
    );
    gap: var(--space-5);
}

.book-card {
    display: grid;
    grid-template-columns: minmax(90px, 120px) minmax(0, 1fr);
    gap: var(--space-4);
    padding: var(--space-5);
}

.book-card h3 {
    margin-bottom: var(--space-2);
}

.book-card__meta {
    margin-bottom: var(--space-2);
    color: var(--color-accent);
    font-size: 0.82rem;
    font-weight: 750;
    text-transform: uppercase;
}

.book-cover {
    display: grid;
    min-height: 165px;
    place-items: center;
    padding: var(--space-3);
    border: 1px solid var(--color-border-warm);
    border-radius: var(--radius-medium);
    background: #eee7dd;
    color: var(--color-text-muted);
    font-size: 0.85rem;
    text-align: center;
}


/* ==========================================================================
   7. Sidebar widgets
   ========================================================================== */

.sidebar-card {
    padding: var(--space-5);
}

.sidebar-card + .sidebar-card {
    margin-top: var(--space-5);
}

.sidebar-card h2 {
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-border-warm);
    font-size: 1.1rem;
}

.link-list,
.account-navigation {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.link-list a,
.account-navigation a {
    display: block;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-small);
    color: var(--color-text);
    font-weight: 650;
    text-decoration: none;
}

.link-list a:hover,
.account-navigation a:hover {
    background: var(--color-surface-soft);
    color: var(--color-accent);
}


/* ==========================================================================
   8. Authentication, account areas, and forms
   ========================================================================== */

.auth-page,
.account-page {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}

.auth-header {
    grid-template-columns: auto 1fr;
}

.auth-header__back {
    justify-self: end;
}

.auth-shell {
    display: grid;
    flex: 1;
    place-items: center;
    width: 100%;
    padding: clamp(1rem, 5vw, 4rem);
}

.auth-card {
    width: min(100%, 560px);
    padding: clamp(1.25rem, 4vw, 2.5rem);
}

.account-shell {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: clamp(1rem, 2vw, 2rem);
    flex: 1;
    width: 100%;
    padding: clamp(1rem, 2vw, 2rem);
}

.account-sidebar {
    min-width: 0;
    padding: var(--space-5);
}

.account-sidebar h2 {
    font-size: 1.2rem;
}

.account-navigation a[aria-current="page"] {
    background: var(--color-header);
    color: #ffffff;
}

.account-main {
    min-width: 0;
}

.account-main > .card {
    padding: clamp(1.25rem, 3vw, 2rem);
}

label {
    display: block;
    margin-bottom: var(--space-2);
    color: var(--color-heading);
    font-weight: 700;
}

input,
select,
textarea {
    width: 100%;
    min-height: 44px;
    padding: 0.7rem 0.8rem;
    border: 1px solid #b8c0ca;
    border-radius: var(--radius-small);
    background: var(--color-surface);
    color: var(--color-text);
}

textarea {
    min-height: 130px;
    resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--color-focus);
    outline: 3px solid rgba(37, 99, 235, 0.18);
    outline-offset: 1px;
}


/* ==========================================================================
   9. Footer and utilities
   ========================================================================== */

.site-footer {
    width: 100%;
    margin-top: auto;
    padding: var(--space-5) clamp(1rem, 2.5vw, 2.5rem);
    border-top: 1px solid #374151;
    background: var(--color-header);
    color: #e5e7eb;
    text-align: center;
}

.site-footer p {
    margin: 0;
}

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


/* ==========================================================================
   10. Responsive layout
   ========================================================================== */

/* Tablet */
@media (max-width: 1100px) {
    .site-header {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .main-nav {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: flex-start;
        padding-top: var(--space-3);
        border-top: 1px solid rgba(255, 255, 255, 0.12);
    }

    .page-shell {
        grid-template-areas:
            "main main"
            "left right";
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);
    }
}

/* Narrow tablet and mobile */
@media (max-width: 760px) {
    .site-header,
    .auth-header {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-4);
    }

    .brand,
    .main-nav,
    .header-actions,
    .auth-header__back {
        justify-self: stretch;
    }

    .brand {
        justify-content: center;
    }

    .main-nav {
        grid-column: auto;
        grid-row: auto;
        justify-content: center;
    }

    .header-actions {
        justify-content: center;
    }

    .auth-header__back {
        justify-self: center;
    }

    .page-shell {
        grid-template-areas:
            "main"
            "left"
            "right";
        grid-template-columns: minmax(0, 1fr);
        padding: var(--space-4);
    }

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

    .account-navigation {
        grid-template-columns: repeat(
            auto-fit,
            minmax(130px, 1fr)
        );
    }

    .section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .book-card {
        grid-template-columns: minmax(80px, 100px) minmax(0, 1fr);
    }
}

/* Small mobile */
@media (max-width: 480px) {
    .brand__logo {
        max-width: min(190px, 70vw);
        height: auto;
    }

    .main-nav {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .main-nav a {
        width: 100%;
        padding: var(--space-2);
        text-align: center;
    }

    .header-actions {
        width: 100%;
    }

    .header-actions a {
        flex: 1;
        text-align: center;
    }

    .hero {
        padding: var(--space-6);
    }

    .hero__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .hero__actions .button {
        width: 100%;
    }

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

    .book-cover {
        min-height: 200px;
    }

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

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* ==========================================================================
   11. Error pages
   ========================================================================== */

.error-page {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}

.error-shell {
    display: grid;
    width: 100%;
    min-height: 55vh;
    place-items: center;
    padding:
        clamp(2rem, 8vw, 6rem)
        clamp(1rem, 4vw, 3rem);
}

.error-card {
    width: min(100%, 760px);
    padding: clamp(1.5rem, 5vw, 3.5rem);
    text-align: center;
}

.error-code {
    margin: 0;
    color: var(--color-border-warm);
    font-size: clamp(5rem, 18vw, 11rem);
    font-weight: 850;
    line-height: 0.85;
    letter-spacing: -0.06em;
}

.error-message {
    max-width: 58ch;
    margin-right: auto;
    margin-left: auto;
    color: var(--color-text-muted);
    font-size: 1.05rem;
}

.error-incident {
    margin-top: var(--space-5);
    overflow-wrap: anywhere;
    color: var(--color-text-muted);
    font-size: 0.92rem;
}

.error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: center;
    margin-top: var(--space-6);
}

.error-details {
    margin-top: var(--space-8);
    text-align: left;
}

.error-details summary {
    cursor: pointer;
    font-weight: 700;
}

.error-details pre {
    max-width: 100%;
    margin-top: var(--space-3);
    padding: var(--space-4);
    overflow: auto;
    border-radius: var(--radius-small);
    background: #111827;
    color: #f9fafb;
    font-size: 0.82rem;
    white-space: pre-wrap;
}
/* ==========================================================================
   12. Public content detail pages
   ========================================================================== */

.content-shell {
    width: min(100% - 40px, 1280px);
    margin: 0 auto;
    padding: var(--space-6) 0 var(--space-12);
}

.breadcrumbs {
    margin-bottom: var(--space-5);
}

.breadcrumbs__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    color: var(--color-text-muted);
    font-size: 0.92rem;
    list-style: none;
}

.breadcrumbs__item {
    display: inline-flex;
    gap: var(--space-2);
    align-items: center;
}

.breadcrumbs__item:not(:last-child)::after {
    content: "/";
    color: var(--color-text-muted);
}

.breadcrumbs__item span[aria-current="page"] {
    color: var(--color-text);
    font-weight: 650;
}

.book-detail {
    display: grid;
    gap: var(--space-6);
}

.book-detail__header {
    display: grid;
    grid-template-columns:
        minmax(180px, 260px)
        minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    padding: clamp(1.25rem, 3vw, 2.5rem);
}

.book-detail__cover {
    min-height: 340px;
    aspect-ratio: 2 / 3;
}

.book-detail__introduction {
    min-width: 0;
}

.book-detail__introduction h1 {
    margin-bottom: var(--space-3);
}

.book-detail__subtitle {
    color: var(--color-text-muted);
    font-size: 1.2rem;
    font-style: italic;
}

.book-detail__authors {
    margin-top: var(--space-4);
}

.book-detail__summary {
    max-width: 72ch;
    margin-top: var(--space-5);
    color: var(--color-text-muted);
    font-size: 1.08rem;
    line-height: 1.75;
}

.book-detail__section.card {
    padding: clamp(1.25rem, 3vw, 2rem);
}

.book-detail__description {
    max-width: 82ch;
    line-height: 1.8;
}

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.tag-list li {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border-warm);
    border-radius: 999px;
    background: var(--color-surface-soft);
}

.edition-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 260px), 1fr)
    );
    gap: var(--space-5);
}

.edition-card {
    padding: var(--space-5);
}

.edition-card h3 {
    margin-bottom: var(--space-2);
}

.edition-details {
    display: grid;
    gap: var(--space-3);
    margin: var(--space-5) 0 0;
}

.edition-details > div {
    display: grid;
    grid-template-columns:
        minmax(100px, 0.8fr)
        minmax(0, 1.2fr);
    gap: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border-warm);
}

.edition-details dt {
    color: var(--color-text-muted);
    font-weight: 700;
}

.edition-details dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .content-shell {
        width: min(100% - 24px, 1280px);
        padding-top: var(--space-4);
    }

    .book-detail__header {
        grid-template-columns:
            minmax(130px, 190px)
            minmax(0, 1fr);
    }

    .book-detail__cover {
        min-height: 260px;
    }
}

@media (max-width: 560px) {
    .book-detail__header {
        grid-template-columns: minmax(0, 1fr);
    }

    .book-detail__cover {
        width: min(100%, 240px);
        min-height: 330px;
        margin: 0 auto;
    }

    .edition-details > div {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-1);
    }
}
@media (max-width: 480px) {
    .error-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .error-actions .button {
        width: 100%;
    }
}

/* ==========================================================================
   13. Rich Book Profile
   ========================================================================== */

.book-profile-sections {
    display: grid;
    gap: var(--space-6);
}

.book-profile-section__body {
    max-width: 82ch;
    line-height: 1.8;
}

.book-profile-sidebar-card {
    overflow: hidden;
}

.book-purchase-list {
    display: grid;
    gap: var(--space-4);
}

.book-purchase-item {
    display: grid;
    gap: var(--space-3);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border-warm);
}

.book-purchase-item:first-child {
    padding-top: 0;
    border-top: 0;
}

.book-purchase-item__retailer,
.book-purchase-item__price {
    margin: 0;
    color: var(--color-heading);
    font-weight: 750;
}

.book-purchase-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.book-purchase-item__meta span {
    padding: 0.2rem 0.5rem;
    border: 1px solid var(--color-border-warm);
    border-radius: 999px;
    background: var(--color-surface-soft);
    color: var(--color-text-muted);
    font-size: 0.78rem;
    font-weight: 650;
}

.book-resource-list {
    display: grid;
    gap: var(--space-4);
    margin: 0;
    padding: 0;
    list-style: none;
}

.book-resource-list li {
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border-warm);
}

.book-resource-list li:first-child {
    padding-top: 0;
    border-top: 0;
}

.book-resource-list__type {
    margin-bottom: var(--space-1);
    color: var(--color-text-muted);
    font-size: 0.76rem;
    font-weight: 750;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.book-resource-list a {
    font-weight: 750;
}

.book-resource-list li > p:last-child {
    margin-top: var(--space-2);
    color: var(--color-text-muted);
    font-size: 0.9rem;
}

.editorial-review-grid,
.related-book-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 280px), 1fr)
    );
    gap: var(--space-5);
}

.editorial-review-card,
.related-book-card {
    padding: var(--space-5);
}

.editorial-review-card blockquote {
    margin: 0;
    color: var(--color-text);
    font-size: 1.04rem;
    line-height: 1.75;
}

.editorial-review-card footer {
    display: grid;
    gap: var(--space-1);
    margin-top: var(--space-4);
    color: var(--color-text-muted);
    font-size: 0.9rem;
}

.related-book-card__authors {
    color: var(--color-text-muted);
}

@media (max-width: 480px) {
    .book-purchase-item .button {
        width: 100%;
    }
}
/* PUBLIC ARTICLES START
   ========================================================================== */

.article-index-content,
.article-detail {
    display: grid;
    gap: var(--space-6);
}

.article-index-heading,
.article-detail__header,
.article-detail__body,
.article-detail__taxonomy {
    padding: clamp(1.25rem, 3vw, 2.5rem);
}

.article-index-heading__lead {
    max-width: 72ch;
    color: var(--color-text-muted);
    font-size: 1.08rem;
}

.article-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 310px), 1fr)
    );
    gap: var(--space-5);
}

.article-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: var(--space-5);
}

.article-card__title {
    margin-bottom: var(--space-3);
}

.article-card__subtitle,
.article-detail__subtitle {
    color: var(--color-text-muted);
    font-size: 1.1rem;
    font-style: italic;
}

.article-card__authors,
.article-card__date,
.article-detail__metadata {
    font-size: 0.94rem;
}

.article-card__excerpt {
    color: var(--color-text-muted);
    line-height: 1.75;
}

.article-card__action {
    margin-top: auto;
    padding-top: var(--space-4);
    font-weight: 700;
}

.article-detail__header h1 {
    max-width: 24ch;
}

.article-detail__excerpt {
    max-width: 72ch;
    color: var(--color-text-muted);
    font-size: 1.12rem;
    line-height: 1.75;
}

.article-detail__metadata {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-6);
    margin-top: var(--space-6);
    color: var(--color-text-muted);
}

.article-detail__metadata p {
    margin: 0;
}

.article-detail__prose {
    max-width: 78ch;
    margin: 0 auto;
    font-size: 1.04rem;
    line-height: 1.85;
}

.article-detail__prose p {
    margin-bottom: var(--space-5);
}

.article-detail__taxonomy h2 {
    font-size: 1.25rem;
}

@media (max-width: 560px) {
    .article-detail__metadata {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--space-2);
    }
}

/* PUBLIC ARTICLES END */
/* PUBLIC AUTHORS START
   ========================================================================== */

.author-index-content,
.author-detail {
    display: grid;
    gap: var(--space-6);
}

.author-index-heading,
.author-empty-state,
.author-profile,
.author-detail__about,
.author-work-empty {
    padding: clamp(1.25rem, 3vw, 2.5rem);
}

.author-index-heading__lead,
.author-card__bio,
.author-profile__lead,
.author-work-card > p:not(.eyebrow):not(.author-work-card__action) {
    color: var(--color-text-muted);
}

.author-index-heading__lead,
.author-profile__lead {
    max-width: 72ch;
    font-size: 1.08rem;
}

.author-grid,
.author-work-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 300px), 1fr)
    );
    gap: var(--space-5);
}

.author-card {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: var(--space-5);
    padding: var(--space-5);
}

.author-card__avatar,
.author-profile__avatar {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--color-border-warm);
    border-radius: 50%;
    background: var(--color-surface-soft);
    color: var(--color-accent);
    font-weight: 850;
    letter-spacing: 0.04em;
}

.author-card__avatar {
    width: 74px;
    height: 74px;
    font-size: 1.3rem;
}

.author-card__title {
    margin-bottom: var(--space-3);
}

.author-card__action,
.author-work-card__action {
    margin-top: auto;
    padding-top: var(--space-3);
    font-weight: 700;
}

.author-profile {
    display: flex;
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: flex-start;
}

.author-profile__avatar {
    width: clamp(90px, 12vw, 132px);
    height: clamp(90px, 12vw, 132px);
    font-size: clamp(1.8rem, 4vw, 2.8rem);
}

.author-profile__content {
    min-width: 0;
}

.author-profile__content h1 {
    max-width: 22ch;
}

.author-profile__stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    margin-top: var(--space-5);
    color: var(--color-text-muted);
    font-size: 0.94rem;
    font-weight: 700;
}

.author-profile__stats span {
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--color-border-warm);
    border-radius: 999px;
    background: var(--color-surface-soft);
}

.author-profile__website {
    margin-top: var(--space-5);
    font-weight: 700;
}

.author-detail__prose {
    max-width: 78ch;
    font-size: 1.03rem;
    line-height: 1.85;
}

.author-detail__prose p {
    margin-bottom: var(--space-5);
}

.author-detail__works {
    display: grid;
    gap: var(--space-4);
}

.author-work-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: var(--space-5);
}

.author-work-card h3 {
    margin-bottom: var(--space-3);
}

@media (max-width: 620px) {
    .author-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .author-profile {
        flex-direction: column;
    }

    .author-profile__avatar {
        width: 92px;
        height: 92px;
    }
}

/* PUBLIC AUTHORS END */
/* PUBLIC PUBLISHERS START
   ========================================================================== */

.publisher-index-content,
.publisher-detail {
    display: grid;
    gap: var(--space-6);
}

.publisher-index-heading,
.publisher-empty-state,
.publisher-profile,
.publisher-detail__about,
.publisher-work-empty {
    padding: clamp(1.25rem, 3vw, 2.5rem);
}

.publisher-index-heading__lead,
.publisher-card__description,
.publisher-profile__lead,
.publisher-work-card > p:not(.eyebrow):not(.publisher-work-card__action) {
    color: var(--color-text-muted);
}

.publisher-index-heading__lead,
.publisher-profile__lead {
    max-width: 72ch;
    font-size: 1.08rem;
}

.publisher-grid,
.publisher-work-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 320px), 1fr)
    );
    gap: var(--space-5);
}

.publisher-card {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: var(--space-5);
    padding: var(--space-5);
}

.publisher-card__mark,
.publisher-profile__mark {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--color-border-warm);
    border-radius: var(--radius-medium);
    background: var(--color-surface-soft);
    color: var(--color-accent);
    font-weight: 850;
    letter-spacing: 0.04em;
}

.publisher-card__mark {
    width: 74px;
    height: 74px;
    font-size: 1.4rem;
}

.publisher-card__title {
    margin-bottom: var(--space-3);
}

.publisher-card__action,
.publisher-work-card__action {
    margin-top: auto;
    padding-top: var(--space-3);
    font-weight: 700;
}

.publisher-profile {
    display: flex;
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: flex-start;
}

.publisher-profile__mark {
    width: clamp(90px, 12vw, 132px);
    height: clamp(90px, 12vw, 132px);
    font-size: clamp(2rem, 4vw, 3rem);
}

.publisher-profile__content {
    min-width: 0;
}

.publisher-profile__content h1 {
    max-width: 24ch;
}

.publisher-profile__stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    margin-top: var(--space-5);
    color: var(--color-text-muted);
    font-size: 0.94rem;
    font-weight: 700;
}

.publisher-profile__stats span {
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--color-border-warm);
    border-radius: 999px;
    background: var(--color-surface-soft);
}

.publisher-profile__website {
    margin-top: var(--space-5);
    font-weight: 700;
}

.publisher-detail__prose {
    max-width: 78ch;
    font-size: 1.03rem;
    line-height: 1.85;
}

.publisher-detail__prose p {
    margin-bottom: var(--space-5);
}

.publisher-detail__works {
    display: grid;
    gap: var(--space-4);
}

.publisher-work-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: var(--space-5);
}

.publisher-work-card h3 {
    margin-bottom: var(--space-3);
}

.publisher-editions {
    margin-top: var(--space-5);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border-warm);
}

.publisher-editions h4 {
    margin-bottom: var(--space-3);
    font-size: 1rem;
}

.publisher-edition-list {
    display: grid;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.publisher-edition-list li {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1) var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--color-border-warm);
    border-radius: var(--radius-small);
    background: var(--color-surface-soft);
    color: var(--color-text-muted);
    font-size: 0.9rem;
}

.publisher-edition-list strong {
    color: var(--color-heading);
}

@media (max-width: 620px) {
    .publisher-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .publisher-profile {
        flex-direction: column;
    }

    .publisher-profile__mark {
        width: 92px;
        height: 92px;
    }
}

/* PUBLIC PUBLISHERS END */
/* PUBLIC CATEGORIES START
   ========================================================================== */

.category-index-content,
.category-detail {
    display: grid;
    gap: var(--space-6);
}

.category-index-heading,
.category-empty-state,
.category-profile,
.category-content-empty {
    padding: clamp(1.25rem, 3vw, 2.5rem);
}

.category-index-heading__lead,
.category-profile__lead,
.category-card__description,
.category-content-card > p:not(.eyebrow):not(.category-content-card__action) {
    color: var(--color-text-muted);
}

.category-index-heading__lead,
.category-profile__lead {
    max-width: 76ch;
    font-size: 1.08rem;
}

.category-grid,
.category-content-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 300px), 1fr)
    );
    gap: var(--space-5);
}

.category-card,
.category-content-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: var(--space-5);
}

.category-card__title,
.category-content-card h3 {
    margin-bottom: var(--space-3);
}

.category-card__action,
.category-content-card__action {
    margin-top: auto;
    padding-top: var(--space-3);
    font-weight: 700;
}

.category-profile__stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    margin-top: var(--space-5);
    color: var(--color-text-muted);
    font-size: 0.94rem;
    font-weight: 700;
}

.category-profile__stats span {
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--color-border-warm);
    border-radius: 999px;
    background: var(--color-surface-soft);
}

.category-detail__children,
.category-detail__content {
    display: grid;
    gap: var(--space-4);
}

.category-content-card__subtitle {
    font-weight: 650;
}

.category-content-card__authors {
    font-size: 0.94rem;
}

/* PUBLIC CATEGORIES END */


/* ==========================================================================
   Public book-edition pages
   ========================================================================== */

.book-edition-detail__header {
    display: grid;
    grid-template-columns: minmax(130px, 190px) minmax(0, 1fr);
    gap: var(--space-6);
    align-items: start;
    padding: clamp(1.25rem, 3vw, 2rem);
}

.book-edition-detail__cover {
    min-height: 250px;
}

.book-edition-detail__subtitle,
.book-edition-detail__edition-name {
    color: var(--color-text-muted);
    font-size: 1.08rem;
}

.book-edition-detail__edition-name {
    font-weight: 750;
}

.book-edition-detail__section {
    margin-top: var(--space-6);
    padding: clamp(1.25rem, 3vw, 2rem);
}

.edition-details--full {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 210px), 1fr)
    );
    gap: var(--space-4);
}

.edition-details--full > div {
    min-width: 0;
    padding: var(--space-4);
    border: 1px solid var(--color-border-warm);
    border-radius: var(--radius-medium);
    background: var(--color-surface-soft);
}

.edition-details--full dt {
    color: var(--color-text-muted);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.edition-details--full dd {
    margin: var(--space-2) 0 0;
    overflow-wrap: anywhere;
}

.book-edition-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 250px), 1fr)
    );
    gap: var(--space-5);
}

.book-edition-card {
    padding: var(--space-5);
}

.book-edition-card__action,
.edition-card__action {
    margin-top: var(--space-4);
}

@media (max-width: 760px) {
    .book-edition-detail__header {
        grid-template-columns: minmax(0, 1fr);
    }

    .book-edition-detail__cover {
        min-height: 220px;
    }
}

/* Public book-edition display correction */
.book-edition-page,
.book-edition-detail {
    display: grid;
    gap: var(--space-6);
    min-width: 0;
}

.book-edition-detail__header {
    display: grid;
    grid-template-columns: minmax(150px, 190px) minmax(0, 1fr);
    gap: clamp(1.25rem, 3vw, 2.25rem);
    align-items: center;
    padding: clamp(1.25rem, 3vw, 2rem);
    overflow: hidden;
}

.book-edition-detail__cover {
    width: 100%;
    min-height: 0;
    aspect-ratio: 2 / 3;
    border-radius: var(--radius-medium);
    background:
        linear-gradient(
            145deg,
            #f4ede3 0%,
            #e9dfd1 100%
        );
    box-shadow: inset 0 0 0 1px rgba(166, 61, 64, 0.08);
}

.book-edition-detail__cover span {
    max-width: 12ch;
    color: var(--color-text-muted);
    font-weight: 700;
    line-height: 1.35;
}

.book-edition-detail__introduction {
    min-width: 0;
}

.book-edition-detail__introduction h1 {
    max-width: 19ch;
    margin-bottom: var(--space-3);
    font-size: clamp(2rem, 4.5vw, 3.35rem);
    line-height: 1.04;
    letter-spacing: -0.035em;
}

.book-edition-detail__subtitle {
    max-width: 62ch;
    margin-bottom: var(--space-4);
    color: var(--color-text-muted);
    font-size: clamp(1rem, 1.6vw, 1.15rem);
}

.book-edition-detail__summary {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-3);
    align-items: center;
    margin-top: var(--space-5);
}

.book-edition-detail__badge,
.book-edition-detail__summary-item {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    padding: 0.35rem 0.7rem;
    border: 1px solid var(--color-border-warm);
    border-radius: 999px;
    background: var(--color-surface-soft);
    color: var(--color-text-muted);
    font-size: 0.9rem;
    line-height: 1.2;
}

.book-edition-detail__badge {
    border-color: rgba(166, 61, 64, 0.25);
    color: var(--color-accent);
    font-weight: 750;
}

.book-edition-detail__summary-item a {
    font-weight: 700;
}

.book-edition-detail__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-6);
}

.book-edition-detail__section {
    margin: 0;
    padding: clamp(1.25rem, 3vw, 2rem);
}

.book-edition-detail__section-heading {
    max-width: 70ch;
    margin-bottom: var(--space-5);
}

.book-edition-detail__section-heading h2 {
    margin-bottom: var(--space-2);
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}

.book-edition-detail__section-heading p {
    margin: 0;
    color: var(--color-text-muted);
}

.edition-details--full {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--color-border-warm);
    border-radius: var(--radius-medium);
    background: var(--color-surface);
}

.edition-details--full > div {
    display: grid;
    grid-template-columns: minmax(115px, 0.85fr) minmax(0, 1.15fr);
    gap: var(--space-4);
    align-items: baseline;
    min-width: 0;
    padding: var(--space-4);
    border: 0;
    border-bottom: 1px solid var(--color-border-warm);
    border-radius: 0;
    background: transparent;
}

.edition-details--full > div:nth-child(odd) {
    border-right: 1px solid var(--color-border-warm);
}

.edition-details--full > div:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.edition-details--full > div:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    border-right: 0;
    border-bottom: 0;
}

.edition-details--full dt {
    color: var(--color-text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.edition-details--full dd {
    min-width: 0;
    margin: 0;
    color: var(--color-heading);
    font-weight: 650;
    overflow-wrap: anywhere;
}

.book-edition-detail__other-editions {
    margin-top: var(--space-2);
}

.book-edition-detail__other-heading {
    margin-bottom: var(--space-4);
}

.book-edition-detail__other-heading p {
    margin: 0;
}

.book-edition-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 250px), 1fr)
    );
    gap: var(--space-5);
}

.book-edition-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: var(--space-5);
}

.book-edition-card h3 {
    margin-bottom: var(--space-4);
}

.book-edition-card__details {
    display: grid;
    gap: var(--space-3);
    margin: 0;
}

.book-edition-card__details > div {
    display: grid;
    gap: var(--space-1);
}

.book-edition-card__details dt {
    color: var(--color-text-muted);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.book-edition-card__details dd {
    margin: 0;
}

.book-edition-card__action {
    margin-top: auto;
    padding-top: var(--space-5);
}

@media (max-width: 760px) {
    .book-edition-detail__header {
        grid-template-columns: minmax(110px, 145px) minmax(0, 1fr);
        align-items: start;
    }

    .book-edition-detail__introduction h1 {
        font-size: clamp(1.8rem, 7vw, 2.6rem);
    }

    .edition-details--full {
        grid-template-columns: minmax(0, 1fr);
    }

    .edition-details--full > div,
    .edition-details--full > div:nth-child(odd),
    .edition-details--full > div:nth-last-child(-n + 2),
    .edition-details--full > div:last-child:nth-child(odd) {
        grid-column: auto;
        border-right: 0;
        border-bottom: 1px solid var(--color-border-warm);
    }

    .edition-details--full > div:last-child {
        border-bottom: 0;
    }
}
/*
 * Restore the row divider when the final edition-detail
 * item occupies a full-width row by itself.
 */
.edition-details--full > div:nth-last-child(2):nth-child(even) {
    border-bottom: 1px solid var(--color-border-warm);
}
@media (max-width: 520px) {
    .book-edition-detail__header {
        grid-template-columns: minmax(0, 1fr);
    }

    .book-edition-detail__cover {
        width: min(165px, 58vw);
        justify-self: center;
    }

    .book-edition-detail__introduction {
        text-align: center;
    }

    .book-edition-detail__introduction h1 {
        max-width: none;
    }

    .book-edition-detail__summary,
    .book-edition-detail__actions {
        justify-content: center;
    }

    .edition-details--full > div {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-1);
    }

    .book-edition-detail__actions .button {
        width: 100%;
    }
}
