/* ================================================
   SINGLE PUBLICATION — single-publication.css
   Loaded by single-publication.php after single-work.css.
   Contains only publication-specific overrides and additions;
   layout, image sizing, breadcrumb, and nav styles come from single-work.css.
   ================================================ */

/* Publication caption — paragraph styles in the left column */
.pub-caption p {
    margin: 0 0 3px;
    line-height: 1.35;
}

.pub-caption .pub-title {
    font-weight: 600;
    font-size: 1em;
    text-transform: none; /* single-work uppercases .work-title; publications don't */
    margin-bottom: 6px;
}

.pub-caption .pub-authors {
    font-size: 0.9em;
    color: #444;
}

.pub-caption .pub-name {
    font-size: 0.9em;
    color: #555;
}

.pub-caption .pub-year {
    font-size: 0.9em;
    color: #888;
}

/* Top bar — breadcrumb left, nav right, vertically aligned */
.single-pub-page .pub-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.single-pub-page .pub-top-bar .sw-breadcrumb {
    margin-bottom: 0;
}

/* ---- Image column overrides ----
 * single-work.css gives .work-media-column a fixed viewport height and uses
 * height: 100% on .image-container and .work-image-slide so images fill the
 * column. For publications the column is content-height (image + text below),
 * so those height rules must be relaxed.
 */
.single-pub-page .work-display-area {
    max-height: none;
}

.single-pub-page .work-media-column {
    height: auto;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
}

.single-pub-page .image-container {
    height: auto;
    position: relative; /* still needed for absolute carousel-dots fallback */
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.single-pub-page .work-image-slide {
    height: auto;
    max-width: 100%;
}

.single-pub-page .work-image-slide.active {
    display: block;
    height: auto;
}

.single-pub-page .work-image {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: calc(100svh - 220px - 2rem); /* matches single-work desktop cap */
    height: auto;
    object-fit: contain;
    cursor: default; /* override SVG zoom cursor from single-work.css */
}

/* Carousel dots — move out of absolute overlay into normal flow below the image */
.single-pub-page .carousel-dots {
    position: static;
    transform: none;
    background: none;
    border-radius: 0;
    padding: 10px 0 0;
    justify-content: flex-start;
    align-items: center; /* prevents flex stretch from squishing dots into ovals */
}

.single-pub-page .carousel-dot {
    padding: 0;          /* remove default button padding */
    flex-shrink: 0;      /* prevent flex from compressing width */
    background: #ccc;
    border-color: #aaa;
}

.single-pub-page .carousel-dot.active,
.single-pub-page .carousel-dot:hover {
    background: #555;
    border-color: #555;
}

/* Main content below image — left-aligned, constrained paragraph width */
.pub-content {
    margin-top: 1.5rem;
    font-size: 0.95rem;
    line-height: 1.65;
    text-align: left;
}

.pub-content h3 {
	font-size: 100%;
}
.pub-content p,
.pub-content h4 {
    max-width: 42em;
    margin-bottom: 1em;
    font-size: 90%;
}
