/* Publication component refinements. Scoped to the opt-in publication DOM. */

.mv-publication-directory-group > p:has(> a:only-child) {
    margin: 1rem 0 0;
}

.mv-publication-directory-group > p:has(> a:only-child) > a {
    display: inline-flex;
    align-items: center;
    color: color-mix(in srgb, var(--mv-accent) 90%, var(--mv-text));
    background: transparent;
    background-image: none;
    box-shadow: none;
    font-weight: 850;
    text-decoration: none;
}

.mv-publication-directory-group > p:has(> a:only-child) > a:hover {
    text-decoration: underline;
}

.mv-publication-home-section--accent .mv-publication-home-section-inner {
    align-items: center;
}

.mv-publication-accent-heading,
.mv-publication-accent-copy {
    min-width: 0;
}

.mv-publication-accent-heading > p:first-child {
    display: block;
    margin: 0 0 1.15rem;
    color: color-mix(in srgb, var(--mv-accent) 34%, white);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.105em;
    line-height: 1.3;
    text-transform: uppercase;
}

.mv-publication-accent-heading > p:first-child::before {
    content: "";
    display: inline-block;
    width: 0.68rem;
    height: 0.68rem;
    margin-right: 0.52rem;
    border-radius: 999px;
    background: #dca73f;
    vertical-align: -0.05rem;
}

.mv-publication-accent-heading > h2 {
    max-width: 11.8ch;
    margin: 0;
    color: #fff;
    font-size: clamp(2.3rem, 4.1vw, 3.35rem);
    line-height: 1.02;
    letter-spacing: -0.05em;
}

.mv-publication-accent-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    max-width: 36rem;
}

.mv-publication-accent-copy > p {
    max-width: none;
    margin: 0;
    color: rgba(255, 255, 255, 0.84);
    line-height: 1.6;
}

.mv-publication-accent-copy > p:has(> a:only-child) {
    margin-top: 0.35rem;
}

.mv-publication-accent-copy > p:has(> a:only-child) > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.7rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 999px;
    background: #fff;
    background-image: none;
    box-shadow: none;
    color: #10251a;
    font-weight: 850;
    text-decoration: none;
}

/* Long Publication breadcrumbs may wrap, but the leading marker must stay
 * attached to the first text row instead of becoming its own flex row. */
.mv-publication-article .mv-breadcrumbs,
.mv-publication-hub .mv-breadcrumbs {
    position: relative;
    display: block;
    padding-left: 1.05rem;
}

.mv-publication-article .mv-breadcrumbs::before,
.mv-publication-hub .mv-breadcrumbs::before {
    position: absolute;
    top: 0.18rem;
    left: 0.05rem;
    margin: 0;
}

.mv-publication-article .mv-breadcrumbs ol,
.mv-publication-hub .mv-breadcrumbs ol {
    min-width: 0;
}

/* Hub list rows are one clickable unit, but only the title carries the accent.
 * The descriptive copy stays in the normal text colour for easier scanning. */
.mv-publication-hub-section li > a {
    color: var(--mv-text);
}

.mv-publication-hub-section li > a strong {
    color: color-mix(in srgb, var(--mv-accent) 84%, var(--mv-text));
}

/* Publication text links use one quiet underline. Component links such as
 * cards, buttons and partner blocks keep their explicit component styling. */
.mv-publication-article .mv-breadcrumbs a,
.mv-publication-hub .mv-breadcrumbs a,
.mv-publication-article-hero-inner > p a,
.mv-publication-hub-hero-inner > p a,
.mv-publication-hub-section-inner > p a,
.mv-publication-article-body-inner a:not(.mv-partner-link):not(.mv-partner-cta__button):not(.mv-product-card__partner-link) {
    background-image: none;
    box-shadow: none;
    color: color-mix(in srgb, var(--mv-link) 86%, var(--mv-text));
    text-decoration-line: underline;
    text-decoration-color: currentColor;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16em;
}

.mv-publication-article .mv-breadcrumbs a:hover,
.mv-publication-hub .mv-breadcrumbs a:hover,
.mv-publication-article-hero-inner > p a:hover,
.mv-publication-hub-hero-inner > p a:hover,
.mv-publication-hub-section-inner > p a:hover,
.mv-publication-article-body-inner a:not(.mv-partner-link):not(.mv-partner-cta__button):not(.mv-product-card__partner-link):hover {
    background-image: none;
    box-shadow: none;
    color: var(--mv-link);
    text-decoration-thickness: 1px;
}

/* Source material is supporting information rather than another article
 * section. Keep it collapsed and visually quiet until the reader asks for it. */
.mv-publication-source-disclosure {
    margin: clamp(2.8rem, 6vw, 3.8rem) 0 0;
    border-top: 1px solid color-mix(in srgb, var(--mv-border) 82%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--mv-border) 82%, transparent);
    color: var(--mv-muted);
}

.mv-publication-source-disclosure > summary {
    position: relative;
    padding: 0.9rem 2rem 0.9rem 0;
    color: color-mix(in srgb, var(--mv-text) 62%, var(--mv-muted));
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 800;
    list-style: none;
}

.mv-publication-source-disclosure > summary::-webkit-details-marker {
    display: none;
}

.mv-publication-source-disclosure > summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 0.15rem;
    transform: translateY(-50%);
    color: color-mix(in srgb, var(--mv-accent) 68%, var(--mv-muted));
    font-size: 1.05rem;
    font-weight: 700;
}

.mv-publication-source-disclosure[open] > summary::after {
    content: "−";
}

.mv-publication-source-disclosure-content {
    padding: 0 0 1.1rem;
}

.mv-publication-source-disclosure-content > :first-child {
    margin-top: 0;
}

.mv-publication-source-disclosure-content > :last-child {
    margin-bottom: 0;
}

.mv-publication-article-body-inner .mv-publication-source-disclosure-content p,
.mv-publication-article-body-inner .mv-publication-source-disclosure-content li {
    color: var(--mv-muted);
    font-size: 0.9rem;
    line-height: 1.55;
}

.mv-publication-article-body-inner .mv-publication-source-disclosure-content ul,
.mv-publication-article-body-inner .mv-publication-source-disclosure-content ol {
    margin: 0.7rem 0 0;
    padding-left: 1.2rem;
}

@media (max-width: 760px) {
    .mv-publication-accent-heading > h2 {
        max-width: none;
        margin-bottom: 1.25rem;
    }

    .mv-publication-accent-copy {
        gap: 0.85rem;
        max-width: none;
    }
}
