:root {
    /* Definitive Palette from Reference */
    --heritage-cabernet: #58111a; /* Richer header maroon */
    --heritage-navy: #1c355e;    /* Dark blue for main headers */
    --heritage-gold: #c5a059;    /* Accent and borders */
    --heritage-champagne: #f6ebd9;/* Parchment background */
    --heritage-parchment: #eddcc4;/* Inner box background */
}

/* --- Global Elements --- */
body {
    font-family: 'Libre Baskerville', serif; /* Classic book text */
    background-color: var(--heritage-champagne);
    color: #2b2b2b;
    /* Subtly repeating subtle watermark texture */
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAIklEQVQIW2NkQAKrVq36z8gAFWAAKrgAWIECWAEGWIECYAAAw4AL5u2k2XAAAAAASUVORK5CYII=');
    background-blend-mode: color-burn;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-user-select: none;  /* Safari/Chrome/iOS WebKit engines */
    -moz-user-select: none;     /* Legacy Firefox engine targets */
    -ms-user-select: none;      /* Internet Explorer / Edge configurations */
    user-select: none;          /* Modern global layout design systems */
}

/* Titles use historical font */
h1, h2, h3, .navbar-brand, .library-title {
    font-family: 'Cinzel', serif;
    letter-spacing: 0.5px;
}

/* --- Header & Navbar --- */
.navbar-heritage {
    background-color: var(--heritage-cabernet) !important;
    border-bottom: 2px solid var(--heritage-gold);
    padding-top: 1rem;
    padding-bottom: 1rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25);
}

.navbar-heritage .navbar-brand {
    color: #ffffff !important;
    font-weight: 700;
    font-size: 1.7rem;
    transition: color 0.3s ease;
}

.navbar-heritage .navbar-brand:hover {
    color: var(--heritage-gold) !important;
}

.navbar-heritage .nav-link {
    color: rgba(255, 255, 255, 0.9) !important;
    font-weight: 500;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 1.5px;
    transition: color 0.3s ease, border-color 0.3s ease;
}

.navbar-heritage .nav-link:hover,
.navbar-heritage .nav-link.active {
    color: var(--heritage-gold) !important;
}

.navbar-heritage .nav-link.active {
    border-bottom: 2px solid var(--heritage-gold);
}

/* --- Dropdown Customization --- */
.dropdown-menu {
    background-color: #ffffff;
    border-top: 3px solid var(--heritage-cabernet);
    border-radius: 4px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    margin-top: 0.5rem !important;
}

.dropdown-item {
    color: #2b2b2b;
    font-size: 0.95rem;
    font-weight: 500;
    padding: 0.6rem 1.5rem;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.dropdown-item:hover {
    background-color: var(--heritage-champagne);
    color: var(--heritage-cabernet);
}

/* --- Main Layering & Layout Hero Contexts --- */
main {
    position: relative;
    background-color: var(--heritage-champagne);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-image:
            linear-gradient(to right, rgba(246, 235, 217, 0.75), rgba(246, 235, 217, 0.88)),
            url('images/bgimage.jpeg');
}

/* Stylized frame container setup */
.heritage-hero {
    background-color: var(--heritage-parchment);
    border: 1px solid var(--heritage-gold);
    border-radius: 8px;
    position: relative;
    box-shadow: 0 12px 40px rgba(88, 17, 26, 0.08);
    overflow: visible;
}

/* Inline SVG Corner Filigrees decoration handles */
.heritage-hero::before,
.heritage-hero::after {
    content: "";
    position: absolute;
    width: 40px;
    height: 40px;
    background-repeat: no-repeat;
    background-size: contain;
    pointer-events: none;
    z-index: 10;
}

.heritage-hero::before {
    top: -10px;
    left: -10px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='%23c5a059'%3E%3Cpath d='M2.5 2.5v15h15V2.5zm10 10H7.5v-5h5zM22.5 2.5v15h15V2.5zm10 10h-5v-5h5zm-20 10v15h15v-15zm10 10H7.5v-5h5zm20-10v15h15v-15zm10 10h-5v-5h5z'/%3E%3C/svg%3E");
}

.heritage-hero::after {
    bottom: -10px;
    right: -10px;
    transform: rotate(180deg);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='%23c5a059'%3E%3Cpath d='M2.5 2.5v15h15V2.5zm10 10H7.5v-5h5zM22.5 2.5v15h15V2.5zm10 10h-5v-5h5zm-20 10v15h15v-15zm10 10H7.5v-5h5zm20-10v15h15v-15zm10 10h-5v-5h5z'/%3E%3C/svg%3E");
}

.hero-navy-header {
    color: var(--heritage-navy);
    font-size: calc(2rem + 1.5vw);
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.6);
}

.hero-parchment-text {
    color: #3a3a3a;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.85;
}

/* --- Fine Structural Image Wrappers & Text Aligning --- */
.archive-img-wrapper {
    border: 4px solid #ffffff;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.18);
    overflow: hidden;
    border-radius: 4px;
    background-color: #ffffff;
}

.archive-main-img {
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* --- Premium Buttons --- */
.btn-heritage-brand {
    background-color: var(--heritage-cabernet);
    color: #ffffff;
    border: 1px solid var(--heritage-gold);
    font-family: 'Libre Baskerville', serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-size: 1rem;
    padding: 0.8rem 2.2rem;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 4px 10px rgba(88, 17, 26, 0.15);
}

.btn-heritage-brand:hover,
.btn-heritage-brand:focus {
    background-color: var(--heritage-navy);
    color: var(--heritage-gold);
    border-color: var(--heritage-gold);
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(28, 53, 94, 0.25);
}

/* --- Archival Exhibit Galleries --- */
@media (min-width: 768px) {
    .col-md-2-4 {
        flex: 0 0 auto;
        width: 20%;
    }
}

.artifact-card {
    background-color: #ffffff;
    padding: 7px;
    border: 1px solid var(--heritage-gold);
    box-shadow: 0 8px 24px rgba(88, 17, 26, 0.04);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease, box-shadow 0.4s ease;
    height: 100%;
}

.artifact-inner {
    position: relative;
    overflow: hidden;
    border: 1px dashed rgba(197, 160, 89, 0.4);
    background: #111111;
    display: flex;
    align-items: center;
    justify-content: center;
}

.artifact-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), filter 0.4s ease;
    filter: sepia(0.15) contrast(1.02) brightness(0.9);
}

.artifact-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(to top, rgba(88, 17, 26, 0.95) 0%, rgba(28, 53, 94, 0.2) 100%);
    opacity: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 1.25rem;
    transition: opacity 0.35s ease;
}

.artifact-overlay span {
    color: #fdfbf7;
    font-family: 'Cinzel', serif;
    font-size: 0.85rem;
    letter-spacing: 0.5px;
    text-align: center;
    transform: translateY(12px);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Hover Engine States */
.artifact-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 15px 35px rgba(88, 17, 26, 0.14);
    border-color: var(--heritage-cabernet);
}

.artifact-card:hover .artifact-img {
    transform: scale(1.06);
    filter: sepia(0) contrast(1) brightness(1);
}

.artifact-card:hover .artifact-overlay {
    opacity: 1;
}

.artifact-card:hover .artifact-overlay span {
    transform: translateY(0);
}

.dynamic-centerpiece .artifact-inner {
    height: 100%;
    min-height: 380px;
}

/* --- Global Footer Architecture --- */
.footer-heritage {
    background-color: var(--heritage-cabernet) !important;
    border-top: 2px solid var(--heritage-gold) !important;
    color: rgba(255, 255, 255, 0.8) !important;
}

.gallery-motto {
    font-family: 'Libre Baskerville', serif;
    font-weight: 700;
    color: var(--heritage-gold);
    font-size: calc(1rem + 0.3vw);
    word-spacing: 2px;
    letter-spacing: 0.5px;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

/* Styled Content Block Containers */
.bio-timeline-panel {
    background-color: #ffffff;
    border: 1px solid rgba(197, 160, 89, 0.35);
    border-radius: 6px;
    box-shadow: 0 5px 20px rgba(88, 17, 26, 0.03);
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.bio-timeline-panel:hover {
    box-shadow: 0 10px 30px rgba(88, 17, 26, 0.07);
    border-color: var(--heritage-gold);
}

/* Roman Numeral Side Badges */
.bio-badge {
    position: absolute;
    right: 1.5rem;
    top: 1.25rem;
    font-family: 'Cinzel', serif;
    font-weight: 700;
    font-size: 1.8rem;
    color: rgba(197, 160, 89, 0.15);
    user-select: none;
}

@media (min-width: 992px) {
    .bio-badge {
        right: auto;
        left: -45px;
        top: 2.5rem;
        width: 32px;
        height: 32px;
        background: var(--heritage-cabernet);
        color: var(--heritage-gold);
        font-size: 0.85rem;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: 0 3px 10px rgba(0,0,0,0.15);
        border: 1px solid var(--heritage-gold);
    }
}
/* Section Main Underpinnings */
.museum-vault-container {
    background-color: #ebdcb9;
    background-image: radial-gradient(circle at center, #f5ecd7 0%, #dcc494 100%);
}
.vault-vignette-overlay {
    box-shadow: inset 0 0 100px rgba(44, 28, 12, 0.4);
    z-index: 0;
}

/* 1. Cast Bronze Placard Component */
.bronze-placard {
    background: linear-gradient(135deg, #513b28 0%, #2f2014 100%);
    border: 3px solid #8e6c46;
    border-radius: 4px;
    position: relative;
    box-shadow: 0 10px 25px rgba(0,0,0,0.4), inset 0 1px 3px rgba(255,255,255,0.2);
}
.placard-sub {
    color: #cbb493;
    font-family: 'Cinzel', serif;
    font-size: 0.72rem;
    letter-spacing: 2px;
}
.placard-title {
    color: #fff9e6;
    font-family: 'Cinzel', serif;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.6);
}
.placard-screw {
    width: 8px;
    height: 8px;
    background: #1a110a;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    box-shadow: inset 1px 1px 2px rgba(255,255,255,0.3);
}
.left-screw { left: 12px; }
.right-screw { right: 12px; }

/* 2. Tactile Layered Parchment Block */
.text-block-parchment {
    background: #fcf8ee;
    border-radius: 3px;
    border: 1px solid #e1d3b3;
    position: relative;
    box-shadow: 5px 5px 0px #ebd6aa, 10px 10px 0px #decaa0, 15px 15px 30px rgba(0,0,0,0.15);
}
.parchment-spine-accent {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: linear-gradient(90deg, #c4a974 0%, transparent 100%);
    opacity: 0.4;
}

/* 3. Beveled Glass Vitrine Frame */
.glass-vitrine-case {
    background: #463426;
    border: 12px solid #2f2117;
    border-image: linear-gradient(to bottom right, #3d291c, #21160e) 12;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 15px 35px rgba(0,0,0,0.35);
}
.vitrine-inner-felt {
    background: #2b3238; /* Charcoal deep display felt felt tint */
    box-shadow: inset 3px 3px 10px rgba(0,0,0,0.6);
    border: 1px solid #1c2226;
}
.artifact-photo-mat {
    background: #ffffff;
    padding: 6px;
    border: 1px solid #d4cbb3;
}
.museum-label-tag {
    background: #fdfdfd;
    border-left: 3px solid #8c2630;
}

/* 4. Heavy Mahogany Master Portrait Frame */
.mahogany-portrait-frame {
    background: linear-gradient(145deg, #422013 0%, #1f0d07 100%);
    border: 16px solid #2d140b;
    box-shadow: inset 0 0 15px rgba(0,0,0,0.9), 0 20px 40px rgba(0,0,0,0.4);
}
.gilded-inner-lip {
    border: 3px solid #d4af37;
    background-color: #f7f5f0 !important;
}
.brass-label-plate {
    background: linear-gradient(180deg, #e4c483 0%, #b28d46 100%);
    border: 1px solid #9c7936;
    border-radius: 2px;
    box-shadow: inset 0 1px 1px rgba(255,255,255,0.4);
}

/* 5. Deep Leather Writing Desk Plate */
.leather-desk-panel {
    background: linear-gradient(135deg, #1c2e24 0%, #0d1712 100%);
    border: 10px solid #3d2216;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.85);
    position: relative;
}
.leather-desk-panel::after {
    content: '';
    position: absolute;
    top: 4px; left: 4px; right: 4px; bottom: 4px;
    border: 1px dashed rgba(255, 216, 133, 0.25);
    pointer-events: none;
}

/* 6. Intaglio Tray Insets */
.intaglio-tray-card {
    background: #eae0c7;
    border: 1px solid #cfbe9b;
    box-shadow: inset 2px 2px 6px rgba(0, 0, 0, 0.08), 2px 4px 10px rgba(0,0,0,0.05);
    border-radius: 4px;
}
.tray-index {
    font-family: 'Cinzel', serif;
    font-size: 1.4rem;
    font-weight: bold;
    color: rgba(74, 14, 23, 0.2);
}

/* 7. Collector Chest display layout wrappers */
.chest-photo-display {
    background: #3a2619;
    border: 6px solid #25170e;
    box-shadow: inset 0 0 15px rgba(0,0,0,0.7);
}
.inner-plate {
    background: #fff;
    padding: 4px;
}
.album-scrapbook-inset {
    background: #fbf9f4;
    border: 1px solid #decfa7;
    box-sizing: border-box;
}

/* 8. Scientific Deep-Cloth Inset Display Ledger */
.scientific-ledger-section {
    background: linear-gradient(135deg, #5c1823 0%, #29050b 100%);
    border: 12px solid #211915;
    box-shadow: inset 0 0 35px rgba(0,0,0,0.85), 0 15px 35px rgba(0,0,0,0.4);
}
.ledger-document-display {
    background: #f7f4eb;
    box-shadow: inset 2px 2px 8px rgba(0,0,0,0.3);
}
/* Structural Parchment Deck Engine */
.parchment-deck {
    min-height: 100%;
    position: relative;
}
.parchment-leaf {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border-radius: 2px;
    background-color: #faf6eb;
    border: 1px solid #e2d7be;
}
.leaf-back {
    transform: rotate(-1.5deg) translate(-4px, 2px);
    background-color: #ede2c4;
    z-index: 1;
}
.leaf-middle {
    transform: rotate(1deg) translate(3px, -1px);
    background-color: #f5edd3;
    z-index: 2;
}
.leaf-front {
    position: relative;
    z-index: 3;
    background-image: radial-gradient(circle at 70% 30%, #fdfbf7 0%, #faf5e6 100%);
}
.parchment-deck-spine {
    position: absolute;
    left: 0; top: 0; bottom: 0; width: 8px;
    background: linear-gradient(90deg, rgba(197,160,89,0.3) 0%, rgba(197,160,89,0) 100%);
    z-index: 4;
}

/* Heavy Mahogany Showcase Profile */
.glass-vitrine-case {
    background: linear-gradient(135deg, #422a1d 0%, #29180e 100%);
    border: 14px solid #23130a;
    border-image: linear-gradient(135deg, #3d2314, #190b04) 14;
    border-radius: 4px;
}
.vitrine-glass-glint {
    position: absolute;
    top: 0; left: 0; w: 100%; h: 100%;
    background: linear-gradient(125deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 40%, transparent 41%);
    pointer-events: none;
    z-index: 5;
}
.vitrine-inner-felt {
    background-color: #1a2126;
    background-image: radial-gradient(rgba(0,0,0,0.3) 15%, transparent 16%);
    background-size: 4px 4px;
    box-shadow: inset 0 10px 20px rgba(0,0,0,0.85);
    border: 1px solid #0d1214;
    border-radius: 2px;
}

/* Artifact Mount Plates */
.artifact-photo-mat {
    background: #ffffff;
    padding: 8px 8px 16px 8px;
    border: 1px solid #dcd5c1;
    transition: transform 0.4s ease;
}
.mat-inner {
    border: 1px solid rgba(0,0,0,0.06);
    background: #f7f7f7;
}
.rotation-left { transform: rotate(-2.5deg); }
.rotation-right { transform: rotate(2deg); }

/* Overlapping Dimensional Tag Element */
.museum-label-tag {
    background: #fbfbfa;
    border-top: 1px solid #fff;
    border-left: 4px solid #58111a;
    border-radius: 1px;
    transform: translateY(4px);
}
.tag-pin {
    width: 4px; height: 4px;
    background: #73593f;
    border-radius: 50%;
    position: absolute;
    top: 6px; right: 8px;
    box-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.catalog-ribbon-strip {
    background: linear-gradient(180deg, #fbf9f3 0%, #f3ecd8 100%);
    border: 1px solid #d5c8a9;
    border-bottom: 2px solid #bdae8b;
    border-radius: 2px;
    max-width: 820px;
    position: relative;
    box-shadow:
            inset 0 1px 0 rgba(255,255,255,0.9),
            0 4px 10px rgba(40, 30, 15, 0.08);
}

.catalog-ribbon-text {
    font-family: 'Libre Baskerville', serif;
    font-style: italic;
    font-size: 0.98rem;
    color: #3a251c;
    text-shadow: 1px 1px 0px #ffffff;
    line-height: 1.6;
}

/* Miniature brass pin details anchoring the ribbon */
.ribbon-rivet {
    position: absolute;
    width: 6px;
    height: 6px;
    background: radial-gradient(circle at 30% 30%, #c5a059 0%, #7c6230 100%);
    border-radius: 50%;
    top: 50%;
    transform: translateY(-50%);
    box-shadow: 1px 1px 2px rgba(0,0,0,0.2);
}
.rivet-left { left: 12px; }
.rivet-right { right: 12px; }

/* Folio Ledger Sheet Settings */
.ledger-main-sheet {
    background-color: #fffdf9;
    background-image: linear-gradient(rgba(0,0,0,0.03) 1px, transparent 1px);
    background-size: 100% 2rem; /* Simulates loose ledger faint ruling without sacrificing contrast */
    border: 1px solid #e3dbca;
    border-radius: 4px;
    box-shadow: 0 12px 30px rgba(44, 34, 22, 0.08);
}
.ledger-binding-perforations {
    position: absolute;
    left: 12px; top: 0; bottom: 0; width: 4px;
    border-left: 2px dotted rgba(74, 14, 23, 0.15);
}
.lead-text {
    font-size: 1.05rem;
    font-weight: 500;
    color: #2b2118;
}

/* Wax Seal Detail */
.red-wax-seal {
    width: 32px; height: 32px;
    background: radial-gradient(circle at 35% 35%, #ad212e 0%, #610c14 100%);
    border-radius: 50%;
    box-shadow: 2px 3px 6px rgba(0,0,0,0.3);
    opacity: 0.85;
}

/* Side Column Tactile Image Framing */
.collector-margin-item {
    border: 1px solid #e0dacb;
    border-bottom: 3px solid #ced5c6;
    border-radius: 2px;
    z-index: 5;
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.collector-margin-item:hover {
    transform: scale(1.03) rotate(0deg) !important;
    z-index: 10;
}
.photo-border-mat {
    border: 1px solid rgba(0,0,0,0.08);
}
.frame-tilt-right { transform: rotate(1.5deg) translateX(-5px); }
.frame-tilt-left { transform: rotate(-2deg) translateX(5px); }

/* Metadata Identification Tags */
.catalogue-num {
    font-family: 'Cinzel', serif;
    font-size: 0.65rem;
    font-weight: bold;
    color: #8c2630;
    letter-spacing: 0.5px;
}
.artifact-meta-label .italic {
    font-size: 0.72rem;
    line-height: 1.4;
}

/* Miniature Brass Pin Effect */
.brass-tack {
    position: absolute;
    width: 8px; height: 8px;
    background: radial-gradient(circle at 30% 30%, #ffd97d 0%, #a17820 100%);
    border-radius: 50%;
    top: -4px; left: 50%;
    transform: translateX(-50%);
    box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}

/* Bottom Itemized Cards */
.scrapbook-card {
    background: #fdfdfc;
    border: 1px solid #eae6dc;
}
.card-caption {
    font-size: 0.72rem;
    font-weight: bold;
    color: #4a4238;
}

/* 1. Cast Bronze Placard Component */
.bronze-placard {
    background: linear-gradient(135deg, #513b28 0%, #2f2014 100%);
    border: 3px solid #8e6c46;
    border-radius: 4px;
    position: relative;
    box-shadow: 0 10px 25px rgba(0,0,0,0.4), inset 0 1px 3px rgba(255,255,255,0.2);
}
.placard-sub {
    color: #cbb493;
    font-family: 'Cinzel', serif;
    font-size: 0.72rem;
    letter-spacing: 2px;
}
.placard-title {
    color: #fff9e6;
    font-family: 'Cinzel', serif;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.6);
}
.placard-screw {
    width: 8px; height: 8px; background: #1a110a; border-radius: 50%;
    position: absolute; top: 50%; transform: translateY(-50%);
    box-shadow: inset 1px 1px 2px rgba(255,255,255,0.3);
}
.left-screw { left: 12px; }
.right-screw { right: 12px; }

/* 2. Loose-Leaf Main Ledger Sheet */
.ledger-main-sheet {
    background-color: #fffdf9;
    border: 1px solid #e3dbca;
    border-radius: 3px;
}
.ledger-binding-perforations {
    position: absolute; left: 12px; top: 0; bottom: 0; width: 4px;
    border-left: 2px dotted rgba(74, 14, 23, 0.15);
}

/* 3. Desk Stack Image Stand */
.desk-stacked-gallery {
    background: #332115;
    border: 8px solid #21150c;
    border-radius: 2px;
    box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.inner-photo-plate {
    background: #ffffff; padding: 6px; border: 1px solid #c9bfa7;
}

/* 4. Inventory Catalog Ribbon Strip */
.catalog-ribbon-strip {
    background: linear-gradient(180deg, #fbf9f3 0%, #f3ecd8 100%);
    border: 1px solid #d5c8a9; border-bottom: 2px solid #bdae8b; border-radius: 2px;
    max-width: 600px; position: relative;
}
.catalog-ribbon-text { color: #5c111a; text-shadow: 1px 1px 0px #ffffff; }
.ribbon-rivet {
    position: absolute; width: 6px; height: 6px;
    background: radial-gradient(circle at 30% 30%, #c5a059 0%, #7c6230 100%);
    border-radius: 50%; top: 50%; transform: translateY(-50%);
}
.rivet-left { left: 12px; }
.rivet-right { right: 12px; }

/* 5. Dossier File Folder Cards */
.dossier-folder-card {
    background: linear-gradient(145deg, #fbfbf6 0%, #f2eedb 100%);
    border: 1px solid #dfd9c0;
    border-bottom: 3px solid #cbbe9f;
    border-radius: 4px 16px 4px 4px;
    position: relative;
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.dossier-folder-card:hover {
    transform: translateY(-5px);
}
.dossier-tab-header {
    background: #e9e3cc;
    border-bottom: 1px dashed #d0c8a9;
    border-radius: 4px 15px 0 0;
}
.dossier-idx {
    font-family: 'Cinzel', serif; font-size: 0.72rem; font-weight: bold; color: #8c2630;
}
.dossier-tag {
    font-size: 0.62rem; font-weight: bold; color: #5c4e3c; background: rgba(0,0,0,0.05); padding: 2px 6px; border-radius: 2px;
}
.dossier-photo-mat {
    background: #ffffff; padding: 6px; border: 1px solid #dfd9c0; max-width: 240px;
}
.dossier-photo-mat img {
    filter: grayscale(1) sepia(0.1) contrast(1.05);
}
.dossier-photo-matc {
    background: #ffffff; padding: 6px; border: 1px solid #dfd9c0; max-width: 240px;
}
.dossier-name {
    font-family: 'Cinzel', serif; color: #2b2118; font-size: 0.88rem; letter-spacing: 0.3px;
}
.dossier-abstract {
    font-size: 0.78rem; line-height: 1.6; color: #3a3228; border-top: 1px dashed rgba(0,0,0,0.08); pt-2; mt-2;
}

/* --- Clean Testimonial Layout Styles --- */
.testimonial-clean-card {
    transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s ease;
    will-change: transform, box-shadow;
}

.testimonial-clean-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(88, 17, 26, 0.06) !important;
}

.testimonial-avatar-wrapper img {
    filter: grayscale(0.15) contrast(1.02);
    transition: filter 0.3s ease;
}

.testimonial-clean-card:hover .testimonial-avatar-wrapper img {
    filter: grayscale(0) contrast(1);
}
.scientific-ledger-section .form-control {
    background-color: rgba(0, 0, 0, 0.45) !important;
    color: #ffffff !important;
    border: 1px dashed rgba(255, 216, 133, 0.4) !important;
}
.scientific-ledger-section .form-control:focus {
    background-color: rgba(0, 0, 0, 0.65) !important;
    border-color: #ffd885 !important;
    box-shadow: 0 0 8px rgba(255, 216, 133, 0.25) !important;
    outline: none !important;
}
.text-high-contrast {
    color: #15120e !important;
}
.text-navy-contrast {
    color: #0f2447 !important;
}