/*
 * GOB Theme — gob.css
 *
 * All GOB-specific styles. Loaded after GeneratePress so these
 * declarations override parent styles where needed.
 *
 * Sections:
 *   1. Person profile
 *   2. Utility
 */

/* ==========================================================================
   1. Person profile — modern 2026 layout
   ========================================================================== */

.gob-person {
    max-width: 900px;
}

/* --- Hero: portrait left, content right --- */

.gob-person__hero {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 2.5rem;
    align-items: flex-start;
    margin-bottom: 2.5rem;
}

.gob-person__hero-portrait {
    position: sticky;
    top: 2rem;
}

.gob-person__portrait-figure {
    margin: 0;
}

.gob-person__portrait-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 6px;
    box-shadow: 0 8px 28px rgba( 0, 0, 0, 0.18 );
}

.gob-person__portrait-caption {
    font-size: 0.72rem;
    color: #aaa;
    margin-top: 0.4rem;
    line-height: 1.35;
    text-align: center;
}

/* Pseudonym note above the name */
.gob-person__pseudonym-note {
    font-size: 0.82rem;
    color: #999;
    margin: 0 0 0.4rem;
}

.gob-person__pseudonym-note a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #ccc;
}

.gob-person__pseudonym-note a:hover {
    text-decoration-color: #888;
}

/* Name */
.gob-person__name {
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1.15;
    margin: 0 0 0.6rem;
}

/* Key meta row: lifespan · country · language */
.gob-person__key-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.5rem;
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 1.25rem;
}

.gob-person__meta-sep {
    color: #ccc;
}

/* Social link list — icon + label */
.gob-person__social-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.gob-person__social-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.8rem;
    border: 1px solid #e0e0e0;
    border-radius: 999px;
    font-size: 0.82rem;
    color: #555;
    text-decoration: none;
    background: #fafafa;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.gob-person__social-link:hover {
    background: #f0f0f0;
    border-color: #bbb;
    color: #111;
    text-decoration: none;
}

.gob-person__social-link i {
    font-size: 0.95rem;
}

/* --- Biography --- */

.gob-person__bio-section {
    margin: 0 0 2.5rem;
}

.gob-person__bio-text {
    font-size: 1rem;
    line-height: 1.8;
    color: #333;
    white-space: pre-line;
}

.gob-person__bio-source {
    font-size: 0.78rem;
    color: #bbb;
    margin: 0.75rem 0 0;
}

/* --- Works cover grid --- */

.gob-person__works {
    margin: 0 0 2.5rem;
}

.gob-person__works-heading {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0 0 1.25rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #eee;
}

.gob-person__works-role {
    margin-bottom: 2rem;
}

.gob-person__works-role-label {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #999;
    margin: 0 0 0.9rem;
}

/* Grid: up to 5 covers per row */
.gob-person__works-grid {
    display: grid;
    grid-template-columns: repeat( 5, 1fr );
    gap: 1rem 0.9rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.gob-person__works-link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}

.gob-person__works-link:hover {
    text-decoration: none;
    color: inherit;
}

/* Cover cell — 2:3 aspect ratio like a book */
.gob-person__works-cover {
    position: relative;
    aspect-ratio: 2 / 3;
    border-radius: 4px;
    overflow: hidden;
    background: #f0ece8;
    box-shadow: 0 3px 10px rgba( 0, 0, 0, 0.14 );
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    margin-bottom: 0.5rem;
}

.gob-person__works-link:hover .gob-person__works-cover {
    box-shadow: 0 7px 20px rgba( 0, 0, 0, 0.22 );
    transform: translateY( -3px );
}

.gob-person__works-cover-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Audiobook covers are square — fix aspect ratio and prevent distortion */
.gob-person__works-item--audiobook .gob-person__works-cover {
    aspect-ratio: 1 / 1;
}

.gob-person__works-item--audiobook .gob-person__works-cover-img {
    object-fit: contain;
    background: #f0ece8;
}

/* Placeholder when no cover image is available */
.gob-person__works-no-cover {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 0.5rem;
    font-size: 0.72rem;
    color: #999;
    text-align: center;
    line-height: 1.3;
    word-break: break-word;
}

/* Audiobook badge — bottom-right corner of the cover */
.gob-person__works-badge {
    position: absolute;
    bottom: 0.35rem;
    right: 0.35rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    background: rgba( 0, 0, 0, 0.65 );
    border-radius: 50%;
    color: #fff;
    font-size: 0.7rem;
}

/* Title + year below cover */
.gob-person__works-meta {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.gob-person__works-title {
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.3;
    color: #222;

    /* Clamp to 2 lines */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.gob-person__works-year {
    font-size: 0.72rem;
    color: #aaa;
}

/* --- Debug section — visible to logged-in editors only --- */

.gob-book-review__debug-meta,
.gob-book-review__publisher-feedback,
.gob-person__debug {
    background: #fffbe6;
    border: 1px solid #f0c040;
    border-radius: 4px;
}

.gob-book-review__debug-meta,
.gob-book-review__publisher-feedback {
    margin-top: 2rem;
    padding: 1rem 1.25rem;
}

.gob-person__debug {
    margin-top: 1rem;
    padding: 1rem;
    font-size: 0.8rem;
}

.gob-person__debug summary {
    cursor: pointer;
    font-weight: 600;
    color: #555;
    margin-bottom: 0.5rem;
}

.gob-person__debug pre {
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-all;
    margin: 0;
}

/* --- Responsive --- */

@media ( max-width: 760px ) {
    .gob-person__hero {
        grid-template-columns: 160px 1fr;
        gap: 1.5rem;
    }

    .gob-person__name {
        font-size: 1.6rem;
    }

    .gob-person__works-grid {
        grid-template-columns: repeat( 4, 1fr );
    }
}

@media ( max-width: 540px ) {
    .gob-person__hero {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .gob-person__hero-portrait {
        position: static;
        display: flex;
        justify-content: center;
    }

    .gob-person__portrait-img {
        max-width: 180px;
        margin: 0 auto;
    }

    .gob-person__works-grid {
        grid-template-columns: repeat( 3, 1fr );
    }
}

@media ( max-width: 380px ) {
    .gob-person__works-grid {
        grid-template-columns: repeat( 2, 1fr );
    }
}

/* ==========================================================================
   2. Book cover grid (page-book-covers.php)
   ========================================================================== */

.gob-cover-grid-page {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem 3rem;
}

.gob-cover-grid-page__header {
    margin-bottom: 2rem;
}

.gob-cover-grid-page__title {
    font-size: 2rem;
    font-weight: 700;
    margin: 0;
}

/* 4 columns by default; each cover scales uniformly within its cell */
.gob-cover-grid {
    display: grid;
    grid-template-columns: repeat( 4, 1fr );
    gap: 1.25rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.gob-cover-grid__item {
    /* Reserve a consistent aspect ratio so the grid doesn't jump while
       images are loading (most book covers are roughly 2:3). */
    aspect-ratio: 2 / 3;
    overflow: hidden;
    border-radius: 4px;
    box-shadow: 0 2px 6px rgba( 0, 0, 0, 0.12 );
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.gob-cover-grid__item:hover {
    box-shadow: 0 6px 18px rgba( 0, 0, 0, 0.22 );
    transform: translateY( -3px );
}

.gob-cover-grid__link {
    display: block;
    width: 100%;
    height: 100%;
}

.gob-cover-grid__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gob-cover-grid-page__empty {
    color: #888;
    font-style: italic;
}

/* 3 columns on medium screens */
@media ( max-width: 900px ) {
    .gob-cover-grid {
        grid-template-columns: repeat( 3, 1fr );
    }
}

/* 2 columns on small screens */
@media ( max-width: 560px ) {
    .gob-cover-grid {
        grid-template-columns: repeat( 2, 1fr );
        gap: 0.75rem;
    }
}

/* ==========================================================================
   3. Utility
   ========================================================================== */

.gob-label {
    font-weight: 600;
}

.gob-empty {
    color: #aaa;
    font-style: italic;
}

/* ==========================================================================
   4. Book Review — Featured Image
   ========================================================================== */

.gob-book-review__featured-image {
    margin: 1.5rem 0;
}

.gob-book-review__featured-image-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.gob-book-review__featured-image figcaption {
    margin-top: 0.4rem;
    font-size: 0.8em;
    color: #888;
    text-align: right;
}

/* ==========================================================================
   5. Book Info Box (shown on book_review pages)
   ========================================================================== */

.gob-book-info-box {
    margin: 2rem 0;
    padding: 1.25rem 1.5rem;
    background: #f8f8f8;
    border-left: 4px solid #ccc;
    border-radius: 2px;
}

.gob-book-info-box__heading {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #555;
}

.gob-book-info-box__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9em;
}

.gob-book-info-box__table th {
    width: 6rem;
    padding: 0.25rem 0.75rem 0.25rem 0;
    font-weight: 600;
    color: #555;
    vertical-align: top;
    white-space: nowrap;
}

.gob-book-info-box__table td {
    padding: 0.25rem 0;
    color: #222;
}

/* Two-column layout: cover on the left, table on the right */
.gob-book-info-box__inner {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.gob-book-info-box__cover {
    flex: 0 0 120px;
}

.gob-book-info-box__cover-img {
    width: 120px;
    height: auto;
    display: block;
    border-radius: 2px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

@media ( max-width: 480px ) {
    .gob-book-info-box__inner {
        flex-direction: column;
    }
    .gob-book-info-box__cover {
        flex: none;
    }
}

/* ==========================================================================
   6. Person Tooltip
   ========================================================================== */

/* Wrapper is inline so it flows within text naturally */
.gob-person-tooltip-wrap {
    display: inline;
    white-space: nowrap;
}

.gob-person-tooltip {
    display: inline-block;
    position: relative;
    white-space: nowrap;
}

.gob-person-tooltip__popup {
    display: none;
    position: absolute;
    left: 50%;
    bottom: calc( 100% + 0.5rem );
    transform: translateX( -50% );
    z-index: 200;
    width: 260px;
    padding: 0.75rem;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.18);
    white-space: normal;
    text-align: left;
    font-size: 0.85rem;
    line-height: 1.45;
}

.gob-person-tooltip:hover .gob-person-tooltip__popup,
.gob-person-tooltip:focus-within .gob-person-tooltip__popup {
    display: block;
}

.gob-person-tooltip__photo {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 180px;
    margin: 0 auto 0.5rem;
    border-radius: 2px;
}

.gob-person-tooltip__bio {
    display: block;
    overflow: hidden;
    /* Limit bio snippet to 3 lines in tooltip */
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}

/* ==========================================================================
   7. Person Bio Block
   ========================================================================== */

.gob-person-blocks {
    margin: 2rem 0;
}

.gob-person-blocks__heading {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 1.25rem;
}

.gob-person-block {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid #eee;
}

.gob-person-block:last-child {
    border-bottom: none;
}

/* Photo-right variant: swap order via flex row-reverse */
.gob-person-block--photo-right {
    flex-direction: row-reverse;
}

.gob-person-block__photo {
    flex: 0 0 140px;
}

.gob-person-block__img {
    width: 140px;
    height: auto;
    display: block;
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}

.gob-person-block__content {
    flex: 1;
}

.gob-person-block__name {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}

.gob-person-block__bio {
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 0.5rem;
}

@media ( max-width: 560px ) {
    .gob-person-block,
    .gob-person-block--photo-right {
        flex-direction: column;
    }

    .gob-person-block__photo {
        flex: none;
    }
}

/* ==========================================================================
   8. Person Social Icons
   ========================================================================== */

.gob-person-social {
    display: inline-flex;
    gap: 0.4rem;
    align-items: center;
    margin-left: 0.35rem;
    font-size: 1rem;
    vertical-align: middle;
}

.gob-person-social .gob-person-social__link {
    color: inherit;
    text-decoration: none;
    opacity: 0.7;
    transition: opacity 0.15s ease;
}

.gob-person-social .gob-person-social__link:hover {
    opacity: 1;
}

/* ==========================================================================
   9. Reviews list (shown on book pages)
   ========================================================================== */

.gob-book-reviews-list {
    margin: 2.5rem 0;
}

.gob-book-reviews-list__heading {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #eee;
}

/* Card grid — matches homepage review cards */
.gob-book-reviews-list__list {
    display: grid;
    grid-template-columns: repeat( 2, 1fr );
    gap: 1.25rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.gob-book-reviews-list__item {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba( 0, 0, 0, 0.06 );
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.gob-book-reviews-list__item:hover {
    box-shadow: 0 6px 18px rgba( 0, 0, 0, 0.14 );
    transform: translateY( -3px );
}

/* Entire card is a link */
.gob-book-reviews-list__link {
    display: flex;
    align-items: stretch;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.gob-book-reviews-list__link:hover {
    text-decoration: none;
    color: inherit;
}

.gob-book-reviews-list__body {
    padding: 0.9rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
}

.gob-book-reviews-list__title {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.35;
}

.gob-book-reviews-list__short {
    font-size: 0.82rem;
    color: #555;
    font-style: italic;
    margin: 0.15rem 0 0;
    line-height: 1.45;

    /* Clamp to 3 lines */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.gob-book-reviews-list__meta {
    font-size: 0.75rem;
    color: #aaa;
    margin: auto 0 0;
    padding-top: 0.5rem;
}

.gob-book-reviews-list__author {
    font-weight: 600;
    color: #888;
}

/* Single-column on small screens */
@media ( max-width: 600px ) {
    .gob-book-reviews-list__list {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   10. Books-by-relation grid (bookshelf & genre pages)
   ========================================================================== */

.gob-books-by-relation {
    margin: 2rem 0;
}

/* Fallback for covers with no image */
.gob-cover-grid__no-cover {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 0.5rem;
    background: #f4f4f4;
    font-size: 0.75rem;
    color: #888;
    text-align: center;
    word-break: break-word;
}

/* ==========================================================================
   11. Nachweise Block (credits/attribution — appears at end of every article)
   ========================================================================== */

.gob-image-credits {
    margin-top: 2.5rem;
    padding-top: 1rem;
    border-top: 1px solid #eee;
}

.gob-image-credits__heading {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #999;
    margin: 0 0 0.4rem;
}

.gob-image-credits__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.gob-image-credits__item {
    font-size: 0.75rem;
    color: #aaa;
    line-height: 1.5;
}

.gob-image-credits__source {
    margin-left: 0.3rem;
    font-size: 0.7rem;
    color: #bbb;
    text-decoration: none;
}

.gob-image-credits__source:hover {
    color: #888;
    text-decoration: underline;
}

/* ==========================================================================
   12. Exit Notifier Modal
   ========================================================================== */

/* Overlay — hidden by default, shown via .gob-exit-modal--open */
#gob-exit-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba( 0, 0, 0, 0.55 );
    align-items: center;
    justify-content: center;
}

#gob-exit-modal.gob-exit-modal--open {
    display: flex;
}

.gob-exit-modal__box {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 8px 32px rgba( 0, 0, 0, 0.22 );
    padding: 2rem;
    max-width: 420px;
    width: calc( 100% - 2rem );
    margin: 1rem;
}

.gob-exit-modal__title {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
}

.gob-exit-modal__body {
    font-size: 0.9rem;
    color: #444;
    margin: 0 0 0.5rem;
    line-height: 1.5;
}

.gob-exit-modal__dest {
    font-size: 0.8rem;
    color: #888;
    font-style: italic;
    margin: 0 0 1.5rem;
    word-break: break-all;
}

.gob-exit-modal__actions {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
}

.gob-exit-modal__cancel,
.gob-exit-modal__confirm {
    padding: 0.5rem 1.1rem;
    border: none;
    border-radius: 4px;
    font-size: 0.9rem;
    cursor: pointer;
    line-height: 1.4;
}

.gob-exit-modal__cancel {
    background: #eee;
    color: #333;
}

.gob-exit-modal__cancel:hover {
    background: #ddd;
}

.gob-exit-modal__confirm {
    background: #333;
    color: #fff;
}

.gob-exit-modal__confirm:hover {
    background: #111;
}

.gob-exit-modal__countdown {
    font-size: 0.8em;
    opacity: 0.75;
    margin-left: 0.2em;
}

@media ( max-width: 480px ) {
    .gob-exit-modal__actions {
        flex-direction: column-reverse;
    }

    .gob-exit-modal__cancel,
    .gob-exit-modal__confirm {
        width: 100%;
        text-align: center;
    }
}

/* ==========================================================================
   13. Homepage — Section + Cards
   ========================================================================== */

.gob-homepage {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem 3rem;
}

.gob-homepage__page-content {
    margin-bottom: 2.5rem;
}

/* Section wrapper — shared by all three homepage sections */
.gob-hp-section {
    margin-bottom: 3rem;
}

.gob-hp-section__heading {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 1.25rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #eee;
}

/* "Alle Rezensionen →" link below the review grid */
.gob-hp-section__more {
    margin: 1.25rem 0 0;
    text-align: right;
    font-size: 0.9rem;
}

.gob-hp-section__more a {
    font-weight: 600;
    text-decoration: none;
}

.gob-hp-section__more a:hover {
    text-decoration: underline;
}

/* ==========================================================================
   13a. Review cards
   ========================================================================== */

.gob-hp-cards {
    display: grid;
    grid-template-columns: repeat( 3, 1fr );
    gap: 1.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.gob-hp-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba( 0, 0, 0, 0.06 );
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.gob-hp-card:hover {
    box-shadow: 0 6px 18px rgba( 0, 0, 0, 0.14 );
    transform: translateY( -3px );
}

/* Entire review card is one link */
.gob-hp-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.gob-hp-card__link:hover {
    text-decoration: none;
    color: inherit;
}

/* Book cover — fixed 2:3 aspect ratio, contain so no cropping */
.gob-hp-card__cover {
    aspect-ratio: 2 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #f0ece8;
    flex-shrink: 0;
}

.gob-hp-card__cover-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* Own cover photo: fill the card area completely (no letterboxing) */
.gob-hp-card__cover--photo .gob-hp-card__cover-img {
    object-fit: cover;
    object-position: center top;
}

.gob-hp-card__no-cover {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 1rem;
    font-size: 0.8rem;
    color: #999;
    text-align: center;
}

/* Card text body */
.gob-hp-card__body {
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
}

/* Book title — primary headline on the card */
.gob-hp-card__book-title {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.35;
}

/* Author name below the title */
.gob-hp-card__author {
    font-size: 0.82rem;
    color: #555;
    margin: 0;
}

/* Short review snippet — italic, muted */
.gob-hp-card__short {
    font-size: 0.82rem;
    color: #666;
    font-style: italic;
    margin: 0.2rem 0 0;
    line-height: 1.45;

    /* Clamp to 3 lines so cards stay uniform in height */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Reviewer + date — pushed to the bottom of the card */
.gob-hp-card__meta {
    font-size: 0.75rem;
    color: #aaa;
    margin: auto 0 0;
    padding-top: 0.5rem;
}

.gob-hp-card__sep {
    margin: 0 0.25rem;
    opacity: 0.5;
}

/* ==========================================================================
   13b. Event report cards
   ========================================================================== */

/* Report grid: 2 columns, horizontal card layout */
.gob-hp-cards--reports {
    grid-template-columns: repeat( 2, 1fr );
}

.gob-hp-card--report {
    flex-direction: row;
    align-items: stretch;
}

/* Thumbnail on the left */
.gob-hp-card__thumb-wrap {
    display: block;
    flex: 0 0 110px;
    overflow: hidden;
    background: #f0ece8;
}

.gob-hp-card__thumb {
    width: 110px;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Body fills remaining width */
.gob-hp-card--report .gob-hp-card__body {
    padding: 0.75rem;
}

.gob-hp-card__title {
    font-size: 0.92rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.35;
}

.gob-hp-card__title a {
    color: inherit;
    text-decoration: none;
}

.gob-hp-card__title a:hover {
    text-decoration: underline;
}

/* Linked event name — small label above teaser */
.gob-hp-card__event {
    font-size: 0.78rem;
    color: #888;
    margin: 0;
}

.gob-hp-card__event a {
    color: inherit;
    text-decoration: underline;
}

/* Teaser text — clamped to 3 lines */
.gob-hp-card__teaser {
    font-size: 0.82rem;
    color: #555;
    margin: 0.2rem 0 0;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ==========================================================================
   13c. Upcoming events list
   ========================================================================== */

.gob-hp-events {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Each event row: date | info | cta */
.gob-hp-event {
    display: grid;
    grid-template-columns: 13rem 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.gob-hp-event:last-child {
    border-bottom: none;
}

/* Date column — monospace-style, slightly muted */
.gob-hp-event__date {
    font-size: 0.85rem;
    color: #555;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Info column: name + location stacked */
.gob-hp-event__info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.gob-hp-event__name {
    font-size: 0.95rem;
    font-weight: 600;
}

.gob-hp-event__name a {
    color: inherit;
    text-decoration: none;
}

.gob-hp-event__name a:hover {
    text-decoration: underline;
}

.gob-hp-event__location {
    font-size: 0.8rem;
    color: #888;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gob-hp-event__location .fa-location-dot {
    margin-right: 0.25rem;
    font-size: 0.75rem;
    opacity: 0.7;
}

/* External link button */
.gob-hp-event__link {
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
    color: #555;
    text-decoration: none;
    padding: 0.25rem 0.6rem;
    border: 1px solid #ddd;
    border-radius: 3px;
    transition: background 0.15s ease, color 0.15s ease;
}

.gob-hp-event__link:hover {
    background: #f5f5f5;
    color: #111;
    text-decoration: none;
}

/* ==========================================================================
   13d. Responsive
   ========================================================================== */

@media ( max-width: 900px ) {
    /* Review grid: 2 columns on medium screens */
    .gob-hp-cards {
        grid-template-columns: repeat( 2, 1fr );
    }

    /* Report grid: single column */
    .gob-hp-cards--reports {
        grid-template-columns: 1fr;
    }

    /* Event list: drop the CTA column on medium screens, wrap date above info */
    .gob-hp-event {
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
    }

    .gob-hp-event__date {
        grid-column: 1;
        grid-row: 1;
        font-size: 0.78rem;
    }

    .gob-hp-event__info {
        grid-column: 1;
        grid-row: 2;
    }

    .gob-hp-event__cta {
        grid-column: 2;
        grid-row: 1 / 3;
        align-self: center;
    }
}

@media ( max-width: 560px ) {
    /* Single column on small screens */
    .gob-hp-cards {
        grid-template-columns: 1fr;
    }

    /* Report cards stack vertically */
    .gob-hp-card--report {
        flex-direction: column;
    }

    .gob-hp-card__thumb-wrap {
        flex: none;
        width: 100%;
        height: 160px;
    }

    .gob-hp-card__thumb {
        width: 100%;
        height: 160px;
    }

    /* Event list: single column, hide CTA */
    .gob-hp-event {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .gob-hp-event__cta {
        display: none;
    }
}

/* ==========================================================================
   14. Event single page
   ========================================================================== */

.gob-event {
    max-width: 760px;
}

/* Header: title + meta */
.gob-event__header {
    margin-bottom: 2rem;
}

.gob-event__title {
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 1rem;
}

.gob-event__date,
.gob-event__location {
    font-size: 0.95rem;
    color: #555;
    margin: 0.3rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.gob-event__date i,
.gob-event__location i {
    opacity: 0.6;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.gob-event__url {
    margin: 0.75rem 0 0;
}

.gob-event__ext-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9rem;
    font-weight: 600;
    padding: 0.4rem 0.9rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    text-decoration: none;
    color: #333;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.gob-event__ext-link:hover {
    background: #f5f5f5;
    border-color: #aaa;
    text-decoration: none;
}

.gob-event__ext-link i {
    font-size: 0.75rem;
    opacity: 0.7;
}

/* Description block */
.gob-event__description {
    font-size: 0.95rem;
    line-height: 1.7;
    color: #333;
    margin-bottom: 2.5rem;
    white-space: pre-line;
}

/* Linked event reports */
.gob-event__reports {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #eee;
}

.gob-event__reports-heading {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
}

.gob-event__reports-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.gob-event__report-item {
    padding: 0.35rem 0;
    border-bottom: 1px solid #f2f2f2;
    font-size: 0.92rem;
}

.gob-event__report-item:last-child {
    border-bottom: none;
}

.gob-event__report-meta {
    color: #999;
    font-size: 0.82rem;
}

/* ==========================================================================
   15. Event Report single page
   ========================================================================== */

.gob-event-report {
    max-width: 760px;
}

/* Header */
.gob-event-report__header {
    margin-bottom: 2rem;
}

.gob-event-report__title {
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 0.4rem;
}

.gob-event-report__meta {
    font-size: 0.85rem;
    color: #999;
    margin: 0 0 1rem;
}

.gob-event-report__sep {
    margin: 0 0.3rem;
    opacity: 0.5;
}

/* Linked event info box */
.gob-event-report__event-box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 1rem;
    padding: 0.75rem 1rem;
    background: #f8f8f8;
    border-left: 3px solid #ccc;
    border-radius: 2px;
    font-size: 0.85rem;
}

.gob-event-report__event-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #999;
    width: 100%;
    margin-bottom: 0.1rem;
}

.gob-event-report__event-name {
    font-weight: 700;
    font-size: 0.95rem;
    color: inherit;
    text-decoration: none;
}

.gob-event-report__event-name:hover {
    text-decoration: underline;
}

.gob-event-report__event-date,
.gob-event-report__event-location {
    color: #666;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.gob-event-report__event-date i,
.gob-event-report__event-location i {
    font-size: 0.75rem;
    opacity: 0.6;
}

/* Featured image */
.gob-event-report__featured-image {
    margin: 1.5rem 0;
}

.gob-event-report__featured-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.gob-event-report__featured-image figcaption {
    margin-top: 0.4rem;
    font-size: 0.8em;
    color: #888;
    text-align: right;
}

/* Post content (Gutenberg) */
.gob-event-report__content {
    font-size: 1rem;
    line-height: 1.75;
    margin-bottom: 2.5rem;
}

/* Relation blocks */
.gob-event-report__relations {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #eee;
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

.gob-event-report__relation-block {
    min-width: 180px;
    flex: 1;
}

.gob-event-report__relation-heading {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #999;
    margin: 0 0 0.5rem;
}

.gob-event-report__relation-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.gob-event-report__relation-item {
    font-size: 0.88rem;
    padding: 0.2rem 0;
    border-bottom: 1px solid #f2f2f2;
}

.gob-event-report__relation-item:last-child {
    border-bottom: none;
}

.gob-event-report__relation-item a {
    color: inherit;
    text-decoration: none;
}

.gob-event-report__relation-item a:hover {
    text-decoration: underline;
}

@media ( max-width: 560px ) {
    .gob-event-report__relations {
        flex-direction: column;
        gap: 1.5rem;
    }
}

/* ==========================================================================
   16. Blogger bio block (book_review + event_report pages)
   ========================================================================== */

.gob-blogger-block {
    margin: 2.5rem 0;
    padding-top: 1.5rem;
    border-top: 1px solid #eee;
}

.gob-blogger-block__heading {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #999;
    margin: 0 0 1rem;
}

/* Two-column layout: photo left, text right — same as person bio block */
.gob-blogger-block__inner {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.gob-blogger-block__photo {
    flex: 0 0 120px;
}

.gob-blogger-block__img {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 50%;
    display: block;
    box-shadow: 0 2px 8px rgba( 0, 0, 0, 0.1 );
}

.gob-blogger-block__content {
    flex: 1;
}

.gob-blogger-block__name {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.4rem;
}

.gob-blogger-block__bio {
    font-size: 0.9rem;
    line-height: 1.6;
    color: #444;
    margin: 0 0 0.5rem;
}

@media ( max-width: 560px ) {
    .gob-blogger-block__inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .gob-blogger-block__photo {
        flex: none;
    }
}

/* ==========================================================================
   17. Book single page — Hero layout
   ========================================================================== */

.gob-book {
    max-width: 900px;
}

/* Hero: cover left, content right */
.gob-book__hero {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 2.5rem;
    align-items: flex-start;
    margin-bottom: 2.5rem;
}

.gob-book__hero-cover {
    /* Sticky so the cover follows while scrolling the content column */
    position: sticky;
    top: 2rem;
}

.gob-book__cover-figure {
    margin: 0;
}

.gob-book__cover-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
    box-shadow: 0 8px 28px rgba( 0, 0, 0, 0.22 );
}

/* Series label above the title */
.gob-book__series-label {
    font-size: 0.82rem;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 0.4rem;
}

.gob-book__series-label a {
    color: inherit;
    text-decoration: none;
}

.gob-book__series-label a:hover {
    text-decoration: underline;
}

.gob-book__series-number {
    margin-left: 0.35rem;
    color: #aaa;
    font-weight: 400;
}

/* Title & subtitle */
.gob-book__title {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.2;
    margin: 0 0 0.4rem;
}

.gob-book__subtitle {
    font-size: 1.15rem;
    font-weight: 400;
    color: #555;
    margin: 0 0 0.75rem;
    line-height: 1.4;
}

/* Contributor lines */
.gob-book__contributors {
    font-size: 1rem;
    margin: 0.15rem 0;
}

.gob-book__contributors--secondary {
    font-size: 0.88rem;
    color: #666;
}

.gob-book__contrib-label {
    color: #aaa;
    margin-right: 0.3rem;
    font-style: italic;
}

/* Meta chips row */
.gob-book__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 1rem 0 0.75rem;
    align-items: center;
}

.gob-book__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.65rem;
    border: 1px solid #ddd;
    border-radius: 999px;
    font-size: 0.8rem;
    color: #555;
    background: #fafafa;
    white-space: nowrap;
}

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

.gob-book__chip a:hover {
    text-decoration: underline;
}

/* Plain chip variant — no border emphasis needed */
.gob-book__chip--plain {
    background: transparent;
    border-color: #eee;
    color: #777;
}

/* Genre tags row */
.gob-book__genres {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 1.25rem;
}

.gob-book__genres a {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    background: #f0f0f0;
    border-radius: 3px;
    font-size: 0.78rem;
    color: #555;
    text-decoration: none;
    transition: background 0.15s ease;
}

.gob-book__genres a:hover {
    background: #e0e0e0;
    text-decoration: none;
}

/* Buy button */
.gob-book__cta {
    margin-top: 1rem;
}

.gob-book__buy-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 1.25rem;
    background: #222;
    color: #fff;
    border-radius: 5px;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.1s ease;
}

.gob-book__buy-btn:hover {
    background: #000;
    color: #fff;
    text-decoration: none;
    transform: translateY( -1px );
}

.gob-book__buy-btn i {
    font-size: 0.75rem;
    opacity: 0.7;
}

/* ==========================================================================
   17a. Blurb section
   ========================================================================== */

.gob-book__blurb-section {
    margin: 0 0 2.5rem;
    padding: 1.75rem 2rem;
    background: #f9f8f6;
    border-radius: 6px;
    border-left: 4px solid #d5c9a8;
}

.gob-book__teaser {
    font-size: 1.05rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 0.75rem;
    line-height: 1.55;
    font-style: italic;
}

.gob-book__blurb {
    font-size: 0.95rem;
    line-height: 1.75;
    color: #444;
    white-space: pre-line;
}

.gob-book__blurb-credit {
    font-size: 0.75rem;
    color: #aaa;
    margin: 0.75rem 0 0;
    text-align: right;
}

/* ==========================================================================
   17b. Bibliographic meta
   ========================================================================== */

.gob-book__biblio {
    margin: 0 0 2.5rem;
}

.gob-book__biblio-heading {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #999;
    margin: 0 0 0.75rem;
}

.gob-book__biblio-list {
    margin: 0;
    padding: 0;
}

.gob-book__biblio-row {
    display: grid;
    grid-template-columns: 11rem 1fr;
    gap: 0 1rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.9rem;
}

.gob-book__biblio-row:last-child {
    border-bottom: none;
}

.gob-book__biblio-row dt {
    color: #999;
    font-weight: 600;
}

.gob-book__biblio-row dd {
    margin: 0;
    color: #333;
}

.gob-book__biblio-row dd a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #ccc;
}

.gob-book__biblio-row dd a:hover {
    text-decoration-color: #666;
}

/* ==========================================================================
   17c. Own photography
   ========================================================================== */

.gob-book__photo-section {
    margin: 0 0 2.5rem;
}

.gob-book__photo-figure {
    margin: 0;
}

.gob-book__photo-img {
    width: 100%;
    max-width: 400px;
    height: auto;
    border-radius: 4px;
    display: block;
}

.gob-book__photo-caption {
    margin-top: 0.4rem;
    font-size: 0.78rem;
    color: #aaa;
}

/* ==========================================================================
   17d. Audiobook cards
   ========================================================================== */

.gob-book__audiobooks {
    margin: 0 0 2.5rem;
}

.gob-book__audiobooks-heading {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.gob-book__audiobook-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.gob-book__audiobook-card {
    flex: 0 0 auto;
}

.gob-book__audiobook-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 1rem 0.6rem 0.6rem;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
    background: #fff;
    box-shadow: 0 2px 6px rgba( 0, 0, 0, 0.06 );
    transition: box-shadow 0.2s ease, transform 0.15s ease;
    max-width: 280px;
}

.gob-book__audiobook-link:hover {
    box-shadow: 0 4px 14px rgba( 0, 0, 0, 0.12 );
    transform: translateY( -2px );
    text-decoration: none;
    color: inherit;
}

.gob-book__audiobook-cover-wrap {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    border-radius: 4px;
    overflow: hidden;
}

.gob-book__audiobook-cover-wrap--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0ece8;
    color: #bbb;
    font-size: 1.4rem;
}

.gob-book__audiobook-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gob-book__audiobook-title {
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.35;
}

/* ==========================================================================
   17d. Audiobook type badge
   ========================================================================== */

.gob-audiobook__type-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #888;
    margin: 0 0 0.5rem;
}

/* ==========================================================================
   17e. Audiobook → print book link card
   ========================================================================== */

.gob-audiobook__book-link {
    margin: 0 0 2.5rem;
}

.gob-audiobook__book-link-heading {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #999;
    margin: 0 0 0.75rem;
}

/* Card: horizontal layout — cover left, text right */
.gob-audiobook__book-link-card {
    display: inline-flex;
    align-items: stretch;
    gap: 0;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    background: #fff;
    box-shadow: 0 2px 8px rgba( 0, 0, 0, 0.07 );
    max-width: 320px;
    transition: box-shadow 0.2s ease, transform 0.15s ease;
}

.gob-audiobook__book-link-card:hover {
    box-shadow: 0 6px 18px rgba( 0, 0, 0, 0.14 );
    transform: translateY( -2px );
    text-decoration: none;
    color: inherit;
}

/* Cover column — fixed width, 2:3 aspect ratio */
.gob-audiobook__book-link-cover {
    flex: 0 0 90px;
    width: 90px;
    background: #f0ece8;
    overflow: hidden;
    display: flex;
    align-items: stretch;
}

.gob-audiobook__book-link-cover-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

.gob-audiobook__book-link-no-cover {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.5rem;
    font-size: 0.72rem;
    color: #aaa;
    text-align: center;
}

/* Text column */
.gob-audiobook__book-link-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.2rem;
    padding: 0.75rem 1rem;
}

.gob-audiobook__book-link-title {
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.3;
    color: #222;
}

.gob-audiobook__book-link-author {
    font-size: 0.8rem;
    color: #666;
}

.gob-audiobook__book-link-year {
    font-size: 0.75rem;
    color: #aaa;
}

/* ==========================================================================
   18. Publisher single page
   ========================================================================== */

.gob-publisher {
    max-width: 900px;
}

/* Hero: logo left, content right — mirrors person hero */
.gob-publisher__hero {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 2.5rem;
    align-items: flex-start;
    margin-bottom: 2.5rem;
}

.gob-publisher__hero-logo {
    position: sticky;
    top: 2rem;
}

.gob-publisher__logo-figure {
    margin: 0;
    background: #f8f8f8;
    border: 1px solid #eee;
    border-radius: 6px;
    padding: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gob-publisher__logo-img {
    width: 100%;
    height: auto;
    max-height: 140px;
    object-fit: contain;
    display: block;
}

/* No logo: collapse to single column, name becomes the visual anchor */
.gob-publisher__hero--no-logo {
    display: block;
}

.gob-publisher__hero--no-logo .gob-publisher__name {
    font-size: 2.4rem;
}

/* "Teil von" parent note */
.gob-publisher__parent-note {
    font-size: 0.82rem;
    color: #999;
    margin: 0 0 0.4rem;
}

.gob-publisher__parent-note a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #ccc;
}

.gob-publisher__parent-note a:hover {
    text-decoration-color: #888;
}

.gob-publisher__name {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.2;
    margin: 0 0 0.25rem;
}

.gob-publisher__addendum {
    font-size: 0.95rem;
    color: #777;
    margin: 0 0 0.75rem;
}

/* Books section reuses works-grid from person */
.gob-publisher__books {
    margin: 0 0 2.5rem;
}

/* Imprints / child publishers list */
.gob-publisher__children {
    margin: 0 0 2.5rem;
}

.gob-publisher__children-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Each child: horizontal card with optional logo + name */
.gob-publisher__child-link {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 1rem 0.5rem 0.6rem;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    background: #fff;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 6px rgba( 0, 0, 0, 0.05 );
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.gob-publisher__child-link:hover {
    box-shadow: 0 4px 14px rgba( 0, 0, 0, 0.12 );
    transform: translateY( -2px );
    text-decoration: none;
    color: inherit;
}

.gob-publisher__child-logo {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gob-publisher__child-logo-img {
    max-width: 40px;
    max-height: 40px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.gob-publisher__child-meta {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.gob-publisher__child-name {
    font-size: 0.88rem;
    font-weight: 700;
    color: #222;
    line-height: 1.2;
}

.gob-publisher__child-type {
    font-size: 0.72rem;
    color: #aaa;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Responsive */
@media ( max-width: 760px ) {
    .gob-publisher__hero {
        grid-template-columns: 140px 1fr;
        gap: 1.5rem;
    }

    .gob-publisher__name {
        font-size: 1.6rem;
    }
}

@media ( max-width: 540px ) {
    .gob-publisher__hero {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .gob-publisher__hero-logo {
        position: static;
        display: flex;
        justify-content: center;
    }

    .gob-publisher__logo-figure {
        max-width: 200px;
    }
}

/* ==========================================================================
   17e. Book page — responsive breakpoints
   ========================================================================== */

/* Narrow two-column hero */
@media ( max-width: 760px ) {
    .gob-book__hero {
        grid-template-columns: 160px 1fr;
        gap: 1.5rem;
    }

    .gob-book__title {
        font-size: 1.5rem;
    }
}

/* Stack hero vertically on mobile */
@media ( max-width: 540px ) {
    .gob-book__hero {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .gob-book__hero-cover {
        position: static;
        /* Center the cover on mobile */
        display: flex;
        justify-content: center;
    }

    .gob-book__cover-img {
        max-width: 200px;
        margin: 0 auto;
    }

    .gob-book__biblio-row {
        grid-template-columns: 8rem 1fr;
    }

    .gob-book__blurb-section {
        padding: 1.25rem 1.25rem;
    }
}
