/* Hallmark · genre: civic editorial · tone: official, accessible · anchor: municipal green · macrostructure: Long Document · theme: studied-DNA (client Smart City demo) · enrichment: none · nav: N1b · footer: Ft1 · contrast: pass (40–41) · slop: pass (42–45) · honest: pass (46) · chrome: pass (47) · tokens: pass (48) · responsive: pass (49) · icons: pass (30) · mobile: pass (34, 49, 50–57) */
/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V4 */

html,
body.public-detail-page {
    overflow-x: clip;
}

body.public-detail-page {
    min-width: 0;
    background: var(--color-paper-soft);
    color: var(--color-ink);
    font-family: var(--font-body);
}

.public-detail-page .site-header {
    position: relative;
    z-index: var(--z-sticky-nav);
}

.public-detail-main {
    position: relative;
    z-index: var(--z-base);
    min-width: 0;
    background: var(--color-paper-soft);
}

.public-detail-hero {
    position: relative;
    overflow: clip;
    padding-block: var(--space-6) var(--space-7);
    border-block-end: 1px solid var(--color-line);
    background: var(--color-paper-tint);
    color: var(--color-ink);
}

.public-detail-hero::after {
    content: "";
    position: absolute;
    inset-block: auto 0;
    inset-inline: 0;
    height: var(--space-1);
    background: var(--color-accent);
}

.public-detail-hero__inner {
    position: relative;
    z-index: var(--z-base);
    min-width: 0;
}

.public-detail-home-link {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-block-end: var(--space-3);
    color: var(--color-muted);
    font-size: 0.9rem;
    white-space: nowrap;
}

.public-detail-home-link a {
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    color: var(--color-accent-strong);
    font-weight: 760;
    text-decoration: underline;
    text-decoration-color: var(--color-accent-soft);
    text-underline-offset: 0.24em;
}

.public-detail-hero h1 {
    min-width: 0;
    max-width: 24ch;
    margin: 0;
    color: var(--color-accent-strong);
    font-family: var(--font-display);
    font-size: clamp(2rem, 6.5vw, 4.1rem);
    font-style: normal;
    font-weight: 850;
    letter-spacing: -0.025em;
    line-height: 1.08;
    overflow-wrap: anywhere;
}

.public-detail-hero p {
    max-width: 65ch;
    margin: var(--space-3) 0 0;
    color: var(--color-ink-soft);
    font-size: clamp(1rem, 1.8vw, 1.2rem);
    line-height: 1.6;
}

.public-detail-content {
    min-width: 0;
    padding-block: var(--space-6) var(--space-8);
    background: var(--color-paper-soft);
    color: var(--color-ink);
}

.public-detail-content > .container-body,
.public-detail-content .container-body {
    width: min(100%, var(--container));
    max-width: var(--container);
    margin-inline: auto;
    padding-inline: clamp(var(--space-4), 4vw, var(--space-7));
}

.public-detail-content .title-menu {
    display: none;
}

.public-detail-content .card.detail-body {
    min-height: min(42rem, 70dvh);
    margin-block-start: 0;
    overflow: clip;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    background: var(--color-paper);
    color: var(--color-ink);
    box-shadow: var(--shadow-card);
}

.public-detail-content nav.breadcrumb {
    min-width: 0;
    margin: 0;
    padding: var(--space-3) clamp(var(--space-4), 3vw, var(--space-6));
    overflow-x: auto;
    border: 0;
    border-block-end: 1px solid var(--color-line);
    background: var(--color-paper-tint);
    scrollbar-width: thin;
}

.public-detail-content .custom-breadcrumb {
    min-width: max-content;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-muted);
    font-size: 0.9rem;
    line-height: 1.4;
    white-space: nowrap;
}

.public-detail-content .custom-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    padding-inline: var(--space-2);
    color: var(--color-accent);
    content: "/";
}

.public-detail-content .custom-breadcrumb .breadcrumb-item a {
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    color: var(--color-accent-strong);
    font-weight: 720;
    text-decoration: underline;
    text-decoration-color: var(--color-accent-soft);
    text-underline-offset: 0.22em;
    white-space: nowrap;
}

.public-detail-content .custom-breadcrumb .breadcrumb-item.active {
    color: var(--color-ink-soft);
    font-weight: 600;
}

.public-detail-content .detail-articles,
.public-detail-content .detail-directory,
.public-detail-content .directory-box,
.public-detail-content .detail-articles-file,
.public-detail-content .card-body {
    min-width: 0;
    padding: clamp(var(--space-5), 4vw, var(--space-7));
    color: var(--color-ink);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.68;
}

.public-detail-content .directory-title,
.public-detail-content .card-title,
.public-detail-content h2,
.public-detail-content h3 {
    min-width: 0;
    color: var(--color-accent-strong);
    font-family: var(--font-display);
    font-style: normal;
    font-weight: 800;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.public-detail-content .directory-title {
    max-width: 34ch;
    margin: 0 0 var(--space-5);
    font-size: clamp(1.4rem, 3vw, 2.35rem);
}

.public-detail-content .directory-text-box.mt-6 {
    max-width: 75ch;
    margin: 0;
    color: var(--color-ink);
}

.public-detail-content .directory-text-box > * + *,
.public-detail-content .detail-articles > * + * {
    margin-block-start: var(--space-4);
}

.public-detail-content img,
.public-detail-content video,
.public-detail-content canvas,
.public-detail-content iframe,
.public-detail-content embed {
    max-width: 100%;
}

.public-detail-content img {
    height: auto;
}

.public-detail-content iframe,
.public-detail-content embed {
    width: 100%;
}

.public-detail-content .directory-img-topic {
    justify-content: flex-start;
    margin-block: var(--space-5);
}

.public-detail-content .img-directory-topic {
    border-radius: var(--radius-md);
}

.public-detail-content table {
    width: 100% !important;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.public-detail-content th,
.public-detail-content td {
    padding: var(--space-3);
    border: 1px solid var(--color-line);
    color: var(--color-ink);
    vertical-align: top;
    overflow-wrap: anywhere;
}

.public-detail-content th {
    background: var(--color-paper-tint);
    color: var(--color-accent-strong);
    font-weight: 780;
}

.public-detail-content .directory-card,
.public-detail-content .directory-card-cate,
.public-detail-content .book-container {
    height: auto;
    min-height: 4.5rem;
    margin-block: var(--space-3);
    padding: var(--space-4);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-paper);
    color: var(--color-ink);
    box-shadow: none;
}

.public-detail-content .card-body-directory,
.public-detail-content .directory-topic {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.public-detail-content .directory-topic {
    flex-wrap: wrap;
}

.public-detail-content a {
    color: var(--color-accent-strong);
    text-decoration-color: var(--color-accent-soft);
    text-underline-offset: 0.22em;
}

.public-detail-content button,
.public-detail-content .btn,
.public-detail-content input,
.public-detail-content select,
.public-detail-content textarea {
    min-height: 2.75rem;
    border-width: 1px;
    font-family: var(--font-body);
}

.public-detail-content input,
.public-detail-content select,
.public-detail-content textarea {
    border-color: var(--color-line);
    background: var(--color-paper);
    color: var(--color-ink);
    outline: 2px solid transparent;
    outline-offset: 1px;
}

.public-detail-content textarea {
    min-height: 8rem;
    resize: vertical;
}

.public-detail-content :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 3px;
}

.public-detail-content :is(button, .btn):active {
    transform: translateY(1px);
}

.public-detail-content :is(button, .btn, input, select, textarea):disabled,
.public-detail-content [aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.55;
}

.public-detail-content :is(input, select, textarea)[aria-invalid="true"],
.public-detail-content .is-error {
    border-color: var(--color-danger);
}

.public-detail-content .is-success {
    border-color: var(--color-accent);
}

.public-detail-content .is-loading {
    cursor: progress;
    opacity: 0.72;
}

.public-detail-content .pagination {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: 0;
}

.public-detail-content .page-link {
    min-width: 2.75rem;
    min-height: 2.75rem;
    display: inline-grid;
    place-items: center;
    border-color: var(--color-line);
    background: var(--color-paper);
    color: var(--color-accent-strong);
    white-space: nowrap;
}

.public-detail-content .page-item.active .page-link {
    border-color: var(--color-accent);
    background: var(--color-accent);
    color: var(--color-accent-ink);
}

@media (hover: hover) and (pointer: fine) {
    .public-detail-home-link a:hover,
    .public-detail-content a:hover {
        color: var(--color-accent);
    }

    .public-detail-content .directory-card:hover,
    .public-detail-content .directory-card-cate:hover {
        background: var(--color-paper-tint);
    }

    .public-detail-content input:hover,
    .public-detail-content select:hover,
    .public-detail-content textarea:hover {
        background: var(--color-paper-soft);
    }
}

@media (min-width: 40rem) {
    .public-detail-hero {
        padding-block: var(--space-7) var(--space-8);
    }

    .public-detail-content {
        padding-block: var(--space-7) var(--space-9);
    }
}

@media (min-width: 60rem) {
    .public-detail-hero__inner {
        padding-inline-end: 22%;
    }

    .public-detail-content .card.detail-body {
        border-radius: clamp(var(--radius-md), 1.8vw, var(--radius-lg));
    }
}

@media (pointer: coarse) {
    .public-detail-content a,
    .public-detail-content button,
    .public-detail-content .btn,
    .public-detail-content input,
    .public-detail-content select {
        min-height: 3rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .public-detail-page *,
    .public-detail-page *::before,
    .public-detail-page *::after {
        animation-duration: var(--dur-instant) !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: var(--dur-instant) !important;
    }
}
