/* LFH Compiled Bundle - 2026-09-15T21:53:05+00:00 */

/* --- MODULE: 00-tokens-base.css --- */
/* ==========================================================================
   Laboratorio de Fuentes Históricas (LFH-UTP) - Design Tokens & Typography
   ========================================================================== */
:root {
    /* Color Palette - LFH-UTP Archival System */
    --lfh-surface: #FCF9F4;             /* Lienzo Marfil / Pergamino Cálido */
    --lfh-surface-low: #F6F3EE;         /* Superficie Suave */
    --lfh-surface-container: #F0EDE8;   /* Contenedor Editorial */
    --lfh-surface-high: #EBE8E3;        /* Superficie Elevada */
    --lfh-card-bg: #FFFFFF;             /* Blanco Puro de Lectura */
    
    --lfh-primary: #701C1D;             /* Terracota / Borgoña Patrimonial */
    --lfh-primary-deep: #51040A;        /* Vino Tinto Profundo */
    --lfh-primary-hover: #51040A;       /* Estado Hover Principal */
    --lfh-primary-light: #F7EFEF;       /* Tinte Suave */
    --lfh-primary-border: #E4C8C8;      /* Borde Resaltado */
    --lfh-coral: #F8837E;               /* Acento Coral Luminoso */
    
    --lfh-gold: #C89E6A;                /* Dorado Pátina / Sello de Archivo (Exclusivo Metadatos) */
    --lfh-dark-navy: #0E1E2E;           /* Azul Petróleo / Carbón Nocturno */
    --lfh-ink: #1C1C19;                 /* Tinta de Imprenta Cálida (Alto Contraste) */
    --lfh-text: #4A3F35;                /* Texto de Lectura */
    --lfh-muted: #564241;               /* Texto Secundario Sepia / Metadatos */
    --lfh-border: #E2DCD5;              /* Gris Piedra Divisorio */
    --lfh-editorial-line: rgba(86, 66, 65, 0.15); /* Línea Editorial 0.5px */
    
    /* Typography Stacks */
    --lfh-font-heading: "Playfair Display", Georgia, "Times New Roman", serif;
    --lfh-font-body: "Habibi", Georgia, serif;
    --lfh-font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    
    /* Strict Spatial Rhythm (8pt Grid System) */
    --space-xs: 8px;
    --space-sm: 16px;
    --space-md: 24px;
    --space-lg: 40px;
    --space-xl: 64px;
    --space-2xl: 96px;
    --space-section: 120px;
    
    /* Semantic Component Spacings */
    --lfh-space-xs: var(--space-xs);
    --lfh-space-sm: var(--space-sm);
    --lfh-space-md: var(--space-md);
    --lfh-space-lg: var(--space-lg);
    --lfh-space-xl: var(--space-xl);
    --lfh-space-2xl: var(--space-2xl);
    --lfh-space-3xl: var(--space-section);
    
    /* Shadows */
    --lfh-shadow-sm: 0 1px 3px rgba(31, 25, 20, 0.04);
    --lfh-shadow-md: 0 4px 16px rgba(31, 25, 20, 0.06);
    --lfh-shadow-lg: 0 12px 32px rgba(31, 25, 20, 0.09);
    
    /* Borders & Radius */
    --lfh-radius-sm: 2px;
    --lfh-radius-md: 4px;
    --lfh-radius: 0px; /* Bordes rectos institucionales */
}

/* Base Utility Classes */
.editorial-line {
    border-bottom: 0.5px solid var(--lfh-editorial-line) !important;
}

.editorial-line-vertical {
    border-right: 0.5px solid var(--lfh-editorial-line) !important;
}

.archival-chip {
    display: inline-flex !important;
    align-items: center !important;
    border: 1px solid var(--lfh-gold) !important;
    color: var(--lfh-gold) !important;
    background: transparent !important;
    padding: 2px 8px !important;
    font-family: var(--lfh-font-ui) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    line-height: 1.2 !important;
    border-radius: 2px !important;
}

/* Global Typography & Surface Application */
html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    background-color: var(--lfh-surface) !important;
}

body, button, input, select, textarea {
    font-family: var(--lfh-font-ui);
    color: var(--lfh-ink);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--lfh-font-heading);
    color: var(--lfh-ink);
    font-weight: 700;
    line-height: 1.18;
    overflow-wrap: break-word;
    word-break: break-word;
}

p {
    font-family: var(--lfh-font-body);
    color: var(--lfh-text);
    line-height: 1.65;
}

/* Image Standardization System */
.lfh-collection-image {
    aspect-ratio: 4 / 3 !important;
    object-fit: contain !important;
}

.lfh-editorial-image,
.lfh-testimonial-image {
    aspect-ratio: 16 / 10 !important;
    object-fit: cover !important;
    border-radius: var(--lfh-radius-sm) !important;
}

/* Base Responsive Typography */
@media screen and (max-width: 768px) {
    h1, .lfh-section__title {
        font-size: clamp(1.5rem, 5.5vw, 1.95rem) !important;
        line-height: 1.2 !important;
        margin-bottom: 8px !important;
    }
    h2 {
        font-size: clamp(1.3rem, 4.5vw, 1.6rem) !important;
        line-height: 1.25 !important;
    }
    h3 {
        font-size: clamp(1.1rem, 3.8vw, 1.35rem) !important;
        line-height: 1.3 !important;
    }
    p, .lfh-section__lead {
        font-size: 0.94rem !important;
        line-height: 1.6 !important;
    }
    .container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    #content {
        padding-top: 20px !important;
        padding-bottom: 40px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* ==========================================================================
   GLOBAL EDITORIAL UNBOXING: Strip all theme box containers, backgrounds and shadows
   ========================================================================== */
.block,
.block-html,
.block-media,
.resource.show,
.resource-list--grid .resource,
.resource-list .resource,
.item-showcase .resource.item,
.item-with-metadata__container,
.collecting-block-form form,
.search-form-advanced,
fieldset,
.field {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

#content,
.container {
    background: transparent !important;
}

html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

/* --- MODULE: 05-header-home.css --- */
/* ==========================================================================
   Header & Navigation - Institutional Design (LFH-UTP)
   ========================================================================== */

/* Global body padding reset for sticky header */
body {
    padding-top: 0 !important;
}

/* Accessibility skipnav offscreen positioning (prevent invisible whitespace gap) */
#skipnav {
    position: absolute !important;
    top: -9999px !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    margin: 0 !important;
    padding: 0 !important;
}

#skipnav:focus {
    position: fixed !important;
    top: 10px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    height: auto !important;
    clip: auto !important;
    z-index: 9999 !important;
    background: #701C1D !important;
    color: #FFFFFF !important;
    padding: 10px 20px !important;
    border-radius: 4px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
}

/* Header Sticky Container */
.main-header {
    background: var(--lfh-surface) !important;
    border-bottom: 0.5px solid var(--lfh-editorial-line) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
    box-shadow: 0 1px 4px rgba(28, 28, 25, 0.04) !important;
    margin: 0 !important;
    padding: 0 !important;
}

.main-header__main-bar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 110px !important;
    max-height: 125px !important;
    padding: 0 clamp(14px, 2vw, 36px) !important;
    max-width: 1440px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
    gap: clamp(10px, 1.5vw, 20px) !important;
}

/* Logo & Site Title - Large & Prominent */
.main-header__site-title {
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
}

.main-header__site-title a {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    text-decoration: none !important;
    color: var(--lfh-ink) !important;
}

.main-header__site-title img {
    max-height: 88px !important;
    height: 88px !important;
    width: auto !important;
    display: block !important;
    transition: transform 0.2s ease !important;
}

.main-header__site-title img:hover {
    transform: scale(1.02);
}

/* Navigation Menu */
.main-navigation {
    display: flex !important;
    align-items: center !important;
}

.main-navigation__container ul {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: clamp(6px, 0.9vw, 14px) !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.main-navigation__container li {
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
}

.main-navigation__container a {
    font-family: var(--lfh-font-ui) !important;
    font-size: clamp(0.82rem, 0.88vw, 0.92rem) !important;
    font-weight: 600 !important;
    color: #2E251E !important;
    text-decoration: none !important;
    padding: 8px clamp(3px, 0.4vw, 6px) !important;
    position: relative !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    transition: color 0.15s ease !important;
    display: inline-block !important;
}

.main-navigation__container a:hover {
    color: var(--lfh-primary) !important;
}

.main-navigation__container li.active a,
.main-navigation__container a.active {
    color: var(--lfh-primary) !important;
    font-weight: 700 !important;
}

.main-navigation__container li.active a::after,
.main-navigation__container a.active::after {
    content: "" !important;
    position: absolute !important;
    bottom: -2px !important;
    left: 4px !important;
    right: 4px !important;
    height: 2.5px !important;
    background: var(--lfh-primary) !important;
    border-radius: 2px !important;
}

/* Header Search Form - Refined & Integrated */
.main-header__search-form {
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
}

.main-header__search-form button::before,
.main-header__search-form button::after,
#search-form button::before,
#search-form button::after,
.lfh-search-form button::before,
.lfh-search-form button::after {
    content: none !important;
    display: none !important;
}

.main-header__search-form .lfh-search-form {
    width: clamp(170px, 15vw, 230px) !important;
    max-width: 230px !important;
    margin: 0 !important;
}

.main-header__search-form .lfh-search-input-wrap {
    display: flex !important;
    align-items: center !important;
    background: #FAF8F5 !important;
    border: 1.5px solid #D5CECE !important;
    border-radius: 4px !important;
    padding: 2px 4px 2px 14px !important;
    height: 44px !important;
    box-sizing: border-box !important;
    gap: 6px !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease !important;
}

.main-header__search-form .lfh-search-input-wrap:focus-within {
    border-color: #701C1D !important;
    background: #FFFFFF !important;
    box-shadow: 0 0 0 3px rgba(112, 28, 29, 0.12) !important;
}

.main-header__search-form input[type="text"] {
    border: none !important;
    outline: none !important;
    padding: 0 !important;
    margin: 0 !important;
    font-family: var(--lfh-font-ui) !important;
    font-size: 0.92rem !important;
    color: #1F1914 !important;
    width: 100% !important;
    background: transparent !important;
}

.main-header__search-form input[type="text"]::placeholder {
    color: #8C827A !important;
    font-size: 0.86rem !important;
}

.main-header__search-form button {
    background: #701C1D !important;
    border: none !important;
    color: #FFFFFF !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 3px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.15s ease, transform 0.1s ease !important;
    flex-shrink: 0 !important;
}

.main-header__search-form button:hover {
    background: #8D1617 !important;
    transform: scale(1.04) !important;
}

.main-header__search-form button svg {
    stroke: #FFFFFF !important;
    width: 17px !important;
    height: 17px !important;
    display: block !important;
}

/* Base Content Container Spacing */
#content {
    display: flow-root !important;
    padding-top: 36px;
    padding-bottom: 56px;
}

/* Eliminate ANY whitespace gap between Header and Hero on Home Page */
body.site-page-inicio #content,
.site-page-inicio #content,
body[class*="site-page-inicio"] #content,
body.page.inicio #content,
body.inicio #content,
.page.inicio #content,
body.page-inicio #content {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: flow-root !important;
}

.site-page-inicio .blocks,
.site-page-inicio .block,
.site-page-inicio .block:first-child,
.site-page-inicio .blocks > *:first-child,
body.site-page-inicio .blocks,
body.site-page-inicio .block,
body.site-page-inicio .blocks > *:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Hide automatic Omeka pagination on Home Page */
body.site-page-inicio .site-page-pagination,
.site-page-inicio .site-page-pagination,
body.page.inicio .site-page-pagination,
.site-page-pagination.inicio {
    display: none !important;
}

/* Hero Section */
.hero-lfh {
    display: flex !important;
    align-items: center !important;
    position: relative !important;
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background-image: url("../../../../files/asset/73632709b568fb16275bc2df9c8c4f9811e37d90.png") !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    min-height: calc(100vh - 128px) !important;
}

.hero-lfh::before {
    position: absolute !important;
    inset: 0 !important;
    content: "" !important;
    background: linear-gradient(90deg, rgba(12, 12, 12, 0.94) 0%, rgba(12, 12, 12, 0.78) 50%, rgba(12, 12, 12, 0.35) 100%) !important;
    z-index: 1 !important;
}

.hero-lfh__content,
.hero-lfh > div,
.hero-lfh > div:first-child,
.hero-lfh > div:last-child {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 2 !important;
    max-width: 760px !important;
    margin: 0 auto 0 clamp(20px, 6vw, 80px) !important;
    padding: clamp(48px, 6vw, 76px) 20px !important;
    color: #FFFFFF !important;
    box-sizing: border-box !important;
    text-align: left !important;
    transform: none !important;
    top: auto !important;
    left: auto !important;
    bottom: auto !important;
    width: 100% !important;
    height: auto !important;
}

.hero-lfh__eyebrow {
    font-family: var(--lfh-font-ui) !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.14em !important;
    color: #E2A499 !important;
    margin-bottom: 12px !important;
    display: block !important;
}

.hero-lfh__title {
    font-family: var(--lfh-font-heading) !important;
    font-size: clamp(2.2rem, 4.2vw, 3.8rem) !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
    color: #FFFFFF !important;
    margin: 0 0 18px !important;
    display: block !important;
}

.hero-lfh__title span {
    display: block !important;
    color: #FFFFFF !important;
}

.hero-lfh__lead {
    font-family: var(--lfh-font-body) !important;
    font-size: clamp(1.02rem, 1.4vw, 1.18rem) !important;
    line-height: 1.65 !important;
    color: #F0ECE6 !important;
    margin: 0 0 26px !important;
    max-width: 600px !important;
    display: block !important;
}

.hero-lfh__btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: transparent !important;
    color: #FFFFFF !important;
    padding: 13px 26px !important;
    font-family: var(--lfh-font-ui) !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    text-decoration: none !important;
    border: 1.5px solid #FFFFFF !important;
    border-radius: 2px !important;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.15s ease !important;
}

.hero-lfh__btn:hover,
.hero-lfh__btn:focus-visible {
    background: var(--lfh-primary) !important;
    border-color: var(--lfh-primary) !important;
    color: #FFFFFF !important;
    transform: translateY(-1px) !important;
}

/* Compact Desktop / Laptop Breakpoint (961px to 1366px) */
@media screen and (min-width: 961px) and (max-width: 1366px) {
    .main-header__main-bar {
        min-height: 96px !important;
        max-height: 108px !important;
        padding: 0 12px !important;
        gap: 8px !important;
    }
    .main-header__site-title img {
        max-height: 72px !important;
        height: 72px !important;
    }
    .main-navigation__container ul {
        gap: clamp(4px, 0.7vw, 10px) !important;
    }
    .main-navigation__container a {
        font-size: 0.82rem !important;
        padding: 6px 2px !important;
    }
    .main-header__search-form .lfh-search-form {
        width: 175px !important;
    }
}

/* Mobile Breakpoint */
@media screen and (max-width: 960px) {
    .main-header__main-bar {
        min-height: 74px !important;
        max-height: 80px !important;
        padding: 0 14px !important;
        gap: 10px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100vw !important;
        overflow: hidden !important;
    }
    .main-header__site-title {
        order: 0 !important;
        flex-shrink: 0 !important;
    }
    .main-header__site-title img {
        max-height: 52px !important;
        height: 52px !important;
    }
    .main-navigation__container {
        display: none !important;
    }
    .main-navigation {
        order: 2 !important;
        display: flex !important;
        align-items: center !important;
        flex-shrink: 0 !important;
    }
    .main-navigation__toggle {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 4px !important;
        width: 38px !important;
        height: 38px !important;
        margin: 0 !important;
        background: transparent !important;
        border: none !important;
        cursor: pointer !important;
        padding: 0 !important;
    }
    .main-navigation__toggle span {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        height: 3px !important;
        width: 22px !important;
        background: var(--lfh-primary) !important;
        border-radius: 2px !important;
        opacity: 1 !important;
        display: block !important;
    }
    .main-header__search-form {
        order: 1 !important;
        margin-left: auto !important;
        margin-right: 0 !important;
        flex-shrink: 1 !important;
    }
    .main-header__search-form .lfh-search-form {
        width: clamp(100px, 28vw, 160px) !important;
        margin: 0 !important;
    }
    .main-header__search-form .lfh-search-advanced-link {
        display: none !important;
    }
    .main-header__search-form .lfh-search-input-wrap {
        height: 36px !important;
        padding: 2px 2px 2px 8px !important;
        box-sizing: border-box !important;
    }
    .main-header__search-form button {
        width: 30px !important;
        height: 30px !important;
        min-width: 30px !important;
    }
    .main-header__search-form input[type="text"] {
        font-size: 0.82rem !important;
    }
}

@media screen and (max-width: 480px) {
    .main-header__main-bar {
        min-height: 66px !important;
        max-height: 72px !important;
        padding: 0 10px !important;
        gap: 8px !important;
    }
    .main-header__site-title img {
        max-height: 44px !important;
        height: 44px !important;
    }
    .main-header__search-form .lfh-search-form {
        width: clamp(85px, 26vw, 130px) !important;
    }
    .main-header__search-form .lfh-search-input-wrap {
        height: 34px !important;
        padding: 2px 2px 2px 6px !important;
    }
    .main-header__search-form button {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
    }
    .main-header__search-form input[type="text"] {
        font-size: 0.78rem !important;
    }
    .main-navigation__toggle {
        width: 34px !important;
        height: 34px !important;
    }
}

@media screen and (max-width: 340px) {
    .main-header__main-bar {
        min-height: 58px !important;
        max-height: 64px !important;
        padding: 0 6px !important;
        gap: 4px !important;
    }
    .main-header__site-title img {
        max-height: 38px !important;
        height: 38px !important;
    }
    .main-header__search-form .lfh-search-form {
        width: clamp(70px, 24vw, 95px) !important;
    }
    .main-header__search-form .lfh-search-input-wrap {
        height: 30px !important;
        padding: 1px 1px 1px 5px !important;
    }
    .main-header__search-form button {
        width: 24px !important;
        height: 24px !important;
        min-width: 24px !important;
    }
    .main-header__search-form button svg {
        width: 13px !important;
        height: 13px !important;
    }
    .main-header__search-form input[type="text"] {
        font-size: 0.72rem !important;
    }
    .main-navigation__toggle {
        width: 30px !important;
        height: 30px !important;
    }
    .main-navigation__toggle span {
        width: 16px !important;
        height: 2px !important;
    }
}

@media screen and (max-width: 768px) {
    .hero-lfh {
        width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        min-height: clamp(540px, 80vh, 700px) !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        box-sizing: border-box !important;
        padding: clamp(48px, 10vh, 72px) 0 !important;
    }
    .hero-lfh::before {
        background: linear-gradient(180deg, rgba(12, 12, 12, 0.94) 0%, rgba(12, 12, 12, 0.82) 45%, rgba(12, 12, 12, 0.95) 100%) !important;
    }
    .hero-lfh__content,
    .hero-lfh > div,
    .hero-lfh > div:first-child,
    .hero-lfh > div:last-child {
        margin: 0 !important;
        padding: 0 clamp(20px, 5.5vw, 32px) !important;
        max-width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        visibility: visible !important;
        opacity: 1 !important;
        box-sizing: border-box !important;
    }
    .hero-lfh__eyebrow {
        font-size: clamp(0.70rem, 2.5vw, 0.78rem) !important;
        letter-spacing: 0.12em !important;
        line-height: 1.4 !important;
        margin-bottom: 14px !important;
        word-break: break-word !important;
        color: #E2A499 !important;
    }
    .hero-lfh__title {
        font-size: clamp(1.85rem, 6.8vw, 2.45rem) !important;
        line-height: 1.14 !important;
        letter-spacing: -0.01em !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        margin: 0 0 16px !important;
        font-weight: 600 !important;
    }
    .hero-lfh__lead {
        font-size: clamp(0.95rem, 3.4vw, 1.05rem) !important;
        line-height: 1.62 !important;
        margin: 0 0 28px !important;
        color: #EDE8E1 !important;
    }
    .hero-lfh__btn {
        width: auto !important;
        max-width: 280px !important;
        justify-content: center !important;
        text-align: center !important;
        padding: 13px 26px !important;
        font-size: 0.92rem !important;
        box-sizing: border-box !important;
        background: rgba(255, 255, 255, 0.08) !important;
        border: 1.5px solid #FFFFFF !important;
        color: #FFFFFF !important;
        border-radius: 3px !important;
    }
}

/* Menu Navigation: Title Case / Normal sentence case (no ALL CAPS) */
.main-navigation__container a,
.main-navigation a,
.main-navigation li a,
.main-header .site-title,
.menu-drawer a {
    text-transform: none !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
}

/* Restrict image sizes in split sections across presentacion and general pages */
.lfh-section--split {
    display: grid !important;
    grid-template-columns: minmax(0, 420px) minmax(0, 1fr) !important;
    gap: 40px !important;
    align-items: center !important;
    margin: 40px 0 !important;
}

.lfh-section--split .lfh-section__image {
    max-width: 420px !important;
    margin: 0 auto !important;
}

.lfh-section--split .lfh-section__image img {
    max-height: 280px !important;
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    object-fit: cover !important;
    border: 1px solid var(--lfh-border) !important;
    border-radius: 4px !important;
    box-shadow: 0 4px 14px rgba(44, 62, 80, 0.04) !important;
}

.lfh-section--split .lfh-section__image figcaption {
    font-size: 0.82rem !important;
    color: var(--lfh-muted) !important;
    font-style: italic !important;
    margin-top: 8px !important;
    text-align: center !important;
}

@media screen and (max-width: 860px) {
    .lfh-section--split {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
    .lfh-section--split .lfh-section__image {
        max-width: 100% !important;
    }
}

/* --- MODULE: 10-components.css --- */
/* ==========================================================================
   Home Page Components: Metrics, Asymmetric Collections, Secondary Actions
   ========================================================================== */

/* 1. Metrics Strip: "El Laboratorio en un Vistazo" (Minimalist Edge-to-Edge Bar) */
.lfh-home-overview {
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    background: #1C1C19 !important;
    border-top: 0.5px solid rgba(255, 255, 255, 0.12) !important;
    border-bottom: 0.5px solid rgba(255, 255, 255, 0.12) !important;
    padding: 22px 0 !important;
    color: #FFFFFF !important;
    box-sizing: border-box !important;
    position: relative !important;
    z-index: 10 !important;
}

.lfh-home-overview__container {
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding: 0 clamp(20px, 4vw, 48px) !important;
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 0 !important;
}

.lfh-overview-card {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: 6px 28px !important;
    border-right: 0.5px solid rgba(255, 255, 255, 0.15) !important;
    background: transparent !important;
    border-left: none !important;
    text-align: left !important;
}

.lfh-overview-card:first-child {
    padding-left: 0 !important;
}

.lfh-overview-card:last-child {
    border-right: none !important;
    padding-right: 0 !important;
}

.lfh-overview-card__label {
    display: block !important;
    font-family: var(--lfh-font-ui) !important;
    font-size: 0.70rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: #A8A29E !important;
    margin-bottom: 6px !important;
}

.lfh-overview-card__value {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-family: var(--lfh-font-heading) !important;
    font-size: clamp(1.15rem, 1.6vw, 1.45rem) !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    font-variant-numeric: lining-nums tabular-nums !important;
}

.lfh-overview-card__value svg {
    color: var(--lfh-coral) !important;
    flex-shrink: 0 !important;
}

/* 2. Collections Sequential List Section (Open Editorial Layout) */
.lfh-home-collections {
    padding: 72px 0 56px;
    background: var(--lfh-surface);
}

.lfh-home-collections__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 clamp(20px, 4vw, 40px);
}

.lfh-collections-list {
    display: flex;
    flex-direction: column;
    gap: 48px;
    margin-top: 44px;
}

.lfh-collection-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: clamp(32px, 5vw, 64px);
    align-items: center;
    padding-bottom: 48px;
    border-bottom: 0.5px solid var(--lfh-editorial-line);
    cursor: pointer;
    transition: transform 0.25s ease;
}

.lfh-collection-row:hover {
    transform: translateY(-2px);
}

.lfh-collection-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.lfh-collection-row__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.lfh-collection-row__eyebrow {
    font-family: var(--lfh-font-ui);
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--lfh-gold);
    margin-bottom: 8px;
    display: block;
}

.lfh-collection-row__title {
    font-family: var(--lfh-font-heading);
    font-size: clamp(1.45rem, 2.5vw, 1.95rem);
    color: var(--lfh-ink);
    margin: 0 0 12px;
    line-height: 1.18;
}

.lfh-collection-row__desc {
    font-family: var(--lfh-font-body);
    font-size: 1rem;
    color: var(--lfh-text);
    line-height: 1.65;
    margin: 0 0 22px;
    max-width: 64ch;
}

.lfh-collection-row__action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 1px solid var(--lfh-primary);
    color: var(--lfh-primary) !important;
    padding: 10px 22px;
    font-family: var(--lfh-font-ui);
    font-size: 0.92rem;
    font-weight: 700;
    text-decoration: none;
    border-radius: 2px;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.lfh-collection-row__action:hover,
.lfh-collection-row__action:focus-visible,
.lfh-collection-row:hover .lfh-collection-row__action {
    background: var(--lfh-primary);
    border-color: var(--lfh-primary);
    color: #FFFFFF !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(112, 28, 29, 0.18);
}

.lfh-collection-row__action::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 10;
    cursor: pointer;
}

.lfh-collection-row__visual {
    width: 100%;
}

/* Mosaic for newspaper row */
.lfh-collection-mosaic-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.lfh-collection-mosaic-grid img {
    width: 100%;
    height: 78px;
    max-height: 84px;
    object-fit: contain;
    background: #FFFFFF;
    padding: 10px 16px;
    border: 0.5px solid var(--lfh-editorial-line);
    border-radius: 2px;
    box-sizing: border-box;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.lfh-collection-mosaic-grid img:hover {
    transform: translateY(-2px);
    border-color: var(--lfh-primary);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

/* Single image preview for rights / microfilms */
.lfh-collection-banner-img {
    width: 100%;
    height: 148px;
    overflow: hidden;
    border: 0.5px solid var(--lfh-editorial-line);
    background: #FFFFFF;
    border-radius: 2px;
}

.lfh-collection-banner-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    transition: transform 0.3s ease;
}

.lfh-collection-banner-img:hover img {
    transform: scale(1.03);
}

/* Microfilm highlights box (editorial badges) */
.lfh-collection-badges-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.lfh-collection-badge-item {
    background: rgba(255, 255, 255, 0.6);
    border: 0.5px solid var(--lfh-editorial-line);
    padding: 14px 16px;
    border-radius: 2px;
    border-left: 3px solid var(--lfh-gold);
}

.lfh-collection-badge-item strong {
    display: block;
    font-family: var(--lfh-font-heading);
    font-size: 0.95rem;
    color: var(--lfh-ink);
    margin-bottom: 3px;
}

.lfh-collection-badge-item span {
    display: block;
    font-size: 0.8rem;
    color: var(--lfh-muted);
    line-height: 1.35;
}

@media (max-width: 900px) {
    .lfh-collection-row {
        grid-template-columns: 1fr !important;
        gap: 24px;
        padding-bottom: 36px;
    }
}

/* 3. Secondary Services & Visits Section (Open Editorial) */
.lfh-home-services-visit {
    padding: 72px 0 68px;
    background: #FAF8F5;
    border-top: 1px solid var(--lfh-border, #E2DCD5);
    border-bottom: 1px solid var(--lfh-border, #E2DCD5);
}

.lfh-home-services-visit__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 clamp(20px, 4vw, 40px);
}

.lfh-home-services-visit__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 36px;
    margin-top: 36px;
}

.lfh-service-visit-card {
    position: relative !important;
    background: #FFFFFF !important;
    border: 1px solid #DED6CC !important;
    border-top: 3px solid var(--lfh-primary, #701C1D) !important;
    border-radius: 0 !important;
    padding: 36px 32px 30px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-shadow: 0 4px 16px rgba(40, 25, 15, 0.04) !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
}

.lfh-service-visit-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 28px rgba(40, 25, 15, 0.09) !important;
    border-color: #BDB2A5 !important;
}

.lfh-service-visit-card:hover .lfh-btn-outline {
    background: var(--lfh-primary, #701C1D) !important;
    color: #FFFFFF !important;
    border-color: var(--lfh-primary, #701C1D) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(112, 28, 29, 0.25);
}

.lfh-service-visit-card .lfh-btn-outline::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 10 !important;
    cursor: pointer !important;
}

/* Section Header Commons */
.lfh-section-header {
    margin-bottom: 24px;
}

.lfh-section-eyebrow {
    font-family: var(--lfh-font-ui);
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--lfh-gold);
    margin-bottom: 6px;
    display: block;
}

.lfh-section-title {
    font-family: var(--lfh-font-heading);
    font-size: clamp(1.8rem, 2.8vw, 2.4rem);
    color: var(--lfh-ink);
    margin: 0 0 10px;
}

.lfh-section-lead {
    font-family: var(--lfh-font-body);
    font-size: 1.05rem;
    color: var(--lfh-text);
    max-width: 720px;
    line-height: 1.6;
    margin: 0;
}

/* Buttons System */
.lfh-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--lfh-primary);
    color: #FFFFFF !important;
    padding: 12px 24px;
    font-family: var(--lfh-font-ui);
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.02em;
    text-decoration: none;
    border: none;
    border-radius: var(--lfh-radius-sm);
    transition: background 0.15s ease, transform 0.15s ease;
}

.lfh-btn-primary:hover {
    background: var(--lfh-primary-deep);
    color: #FFFFFF !important;
}

.lfh-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: transparent;
    color: var(--lfh-primary, #701C1D) !important;
    padding: 11px 24px;
    font-family: var(--lfh-font-ui, "DM Sans", sans-serif);
    font-weight: 700;
    font-size: 0.84rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    border: 1.5px solid var(--lfh-primary, #701C1D);
    border-radius: var(--lfh-radius-sm, 2px);
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
}

.lfh-btn-outline:hover,
.lfh-btn-outline:focus-visible {
    background: var(--lfh-primary, #701C1D) !important;
    color: #FFFFFF !important;
    border-color: var(--lfh-primary, #701C1D) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(112, 28, 29, 0.25);
}

.lfh-btn-outline:active {
    transform: translateY(0);
}

/* Responsive adjustments */
@media screen and (max-width: 900px) {
    .lfh-home-collections__grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .lfh-card-hero-collection {
        padding: 22px 18px !important;
    }

    .lfh-card-hero-collection__mosaic {
        padding: 10px !important;
        gap: 8px !important;
        margin: 14px 0 18px !important;
    }

    .lfh-card-hero-collection__mosaic img {
        height: 46px !important;
        max-height: 46px !important;
        padding: 4px 6px !important;
    }
}

/* Institutional Call to Action (CTA Wine Banner - Full Bleed) */
.lfh-cta-banner {
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    background: var(--lfh-primary-deep) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    padding: 64px 0 !important;
    color: #FFFFFF !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

.lfh-cta-banner__inner {
    max-width: 820px !important;
    margin: 0 auto !important;
    padding: 0 clamp(20px, 4vw, 40px) !important;
}

.lfh-cta-banner__title {
    font-family: var(--lfh-font-heading) !important;
    font-size: clamp(1.8rem, 3.2vw, 2.6rem) !important;
    font-weight: 700 !important;
    color: var(--lfh-coral) !important;
    margin: 0 0 16px !important;
    line-height: 1.2 !important;
}

.lfh-cta-banner__lead {
    font-family: var(--lfh-font-body) !important;
    font-size: 1.05rem !important;
    color: #F7EFEF !important;
    line-height: 1.65 !important;
    margin: 0 auto 32px !important;
    max-width: 680px !important;
    opacity: 0.92 !important;
}

.lfh-cta-banner__btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    border: 1.5px solid var(--lfh-coral) !important;
    color: var(--lfh-coral) !important;
    background: transparent !important;
    padding: 12px 28px !important;
    font-family: var(--lfh-font-ui) !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    text-decoration: none !important;
    border-radius: var(--lfh-radius-sm) !important;
    transition: all 0.2s ease !important;
}

.lfh-cta-banner__btn:hover {
    background: var(--lfh-coral) !important;
    color: var(--lfh-primary-deep) !important;
}

@media screen and (max-width: 768px) {
    .lfh-section-title {
        font-size: clamp(1.35rem, 5.2vw, 1.8rem) !important;
        line-height: 1.2 !important;
        margin-bottom: 8px !important;
    }

    .lfh-section-lead {
        font-size: clamp(0.88rem, 3.2vw, 0.96rem) !important;
        line-height: 1.5 !important;
    }

    .lfh-home-collections__grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .lfh-home-overview {
        padding: 14px 0 !important;
    }

    .lfh-home-overview__container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px 10px !important;
        padding: 0 16px !important;
    }

    .lfh-overview-card {
        padding: 8px 10px !important;
        border-right: none !important;
        border-left: 2px solid rgba(200, 158, 106, 0.5) !important;
        background: rgba(255, 255, 255, 0.02) !important;
        border-radius: 2px !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    .lfh-overview-card__value {
        font-size: clamp(0.92rem, 3.2vw, 1.05rem) !important;
        line-height: 1.25 !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
    }

    .lfh-overview-card__label {
        font-size: 0.62rem !important;
        letter-spacing: 0.05em !important;
        line-height: 1.25 !important;
        margin-bottom: 3px !important;
        word-break: break-word !important;
    }

    .lfh-cta-banner {
        padding: 42px 0 !important;
    }

    .lfh-cta-banner__btn {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .lfh-home-collections {
        padding: 32px 0 24px !important;
    }

    .lfh-home-services-visit {
        padding: 32px 0 40px !important;
    }

    .lfh-home-services-visit__grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 20px !important;
        margin-top: 24px !important;
        width: 100% !important;
    }

    .lfh-service-visit-card {
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        padding: 24px 20px 22px !important;
    }

    .lfh-btn-primary,
    .lfh-btn-outline {
        width: 100% !important;
        text-align: center !important;
        justify-content: center !important;
        box-sizing: border-box !important;
    }
}

@media screen and (max-width: 420px) {
    .lfh-home-overview__container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px 8px !important;
        padding: 0 14px !important;
    }

    .lfh-overview-card {
        padding: 9px 10px !important;
        border-left: 2px solid var(--lfh-gold, #C89E6A) !important;
    }

    .lfh-overview-card__value {
        font-size: 0.98rem !important;
    }

    .lfh-overview-card__label {
        font-size: 0.64rem !important;
        line-height: 1.22 !important;
    }
}

/* --- MODULE: 15-blocks.css --- */
/* ==========================================================================
   LFH 15-blocks.css: Native Omeka S Blocks Presentation Layer
   Component styles for LfhCards and LfhCallToAction
   Accessibility: WCAG AA compliant contrast and >= 48px mobile touch targets
   Geometry: 100% fluid, zero overflow-x hacks
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. LfhCards: Contenedor y Encabezados
   -------------------------------------------------------------------------- */
.lfh-cards-container {
    width: 100%;
    max-width: 1350px;
    margin: 48px auto;
    padding: 0 clamp(16px, 3vw, 40px);
    box-sizing: border-box;
}

.lfh-cards-header {
    margin-bottom: 36px;
    max-width: 880px;
}

.lfh-cards-header__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--lfh-font-ui, "Inter", sans-serif);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--lfh-primary, #701C1D);
    margin-bottom: 12px;
}

.lfh-cards-header__eyebrow::before {
    content: "";
    display: block;
    width: 28px;
    height: 2px;
    background: var(--lfh-primary, #701C1D);
}

.lfh-cards-header__title {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif);
    font-size: clamp(1.85rem, 3.2vw, 2.6rem);
    font-weight: 600;
    line-height: 1.2;
    color: var(--lfh-ink, #1C1C19);
    margin: 0 0 14px;
}

.lfh-cards-header__lead {
    font-family: var(--lfh-font-body, "Habibi", Georgia, serif);
    font-size: clamp(0.95rem, 1.4vw, 1.12rem);
    line-height: 1.65;
    color: var(--lfh-text, #4A3F35);
    margin: 0;
}

/* --------------------------------------------------------------------------
   2. LfhCards: Cuadrícula y Variantes de Layout
   -------------------------------------------------------------------------- */
.lfh-cards-grid {
    display: grid;
    gap: 28px;
    width: 100%;
    box-sizing: border-box;
    align-items: stretch;
}

.lfh-cards-grid--grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lfh-cards-grid--grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 1040px;
    margin: 0 auto;
}

.lfh-cards-grid--split {
    grid-template-columns: 1.25fr 0.75fr;
    align-items: start;
}

/* --------------------------------------------------------------------------
   3. LfhCards: Tarjeta Individual (.lfh-card)
   -------------------------------------------------------------------------- */
.lfh-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

/* Estilo: En Caja (Boxed) */
.lfh-card--boxed {
    background: #FFFFFF;
    border: 1px solid var(--lfh-border, #E2DCD5);
    border-radius: var(--lfh-radius-sm, 2px);
    box-shadow: var(--lfh-shadow-sm, 0 1px 3px rgba(31, 25, 20, 0.04));
    overflow: hidden;
}

.lfh-card--boxed:hover {
    transform: translateY(-4px);
    box-shadow: var(--lfh-shadow-md, 0 10px 24px rgba(31, 25, 20, 0.08));
    border-color: #BDB2A5;
}

/* Estilo: Editorial Abierto */
.lfh-card--editorial {
    background: transparent;
    border: none;
    border-bottom: 0.5px solid var(--lfh-editorial-line, rgba(86, 66, 65, 0.15));
    padding-bottom: 28px;
    border-radius: 0;
}

.lfh-card--editorial:hover {
    transform: none;
    box-shadow: none;
}

/* Imagen de Tarjeta */
.lfh-card__image-wrap {
    width: 100%;
    height: 200px;
    overflow: hidden;
    position: relative;
    background: var(--lfh-surface-high, #EBE8E3);
}

.lfh-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.lfh-card--boxed:hover .lfh-card__image {
    transform: scale(1.03);
}

/* Cuerpo de Tarjeta */
.lfh-card__body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    flex: 1;
    box-sizing: border-box;
}

.lfh-card--editorial .lfh-card__body {
    padding: 16px 0 0;
}

.lfh-card__badge {
    font-family: var(--lfh-font-ui, "Inter", sans-serif);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--lfh-primary, #701C1D);
    margin-bottom: 8px;
}

.lfh-card__title {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif);
    font-size: clamp(1.22rem, 1.8vw, 1.45rem);
    font-weight: 600;
    line-height: 1.25;
    color: var(--lfh-ink, #1C1C19);
    margin: 0 0 10px;
}

.lfh-card__description {
    font-family: var(--lfh-font-body, "Habibi", Georgia, serif);
    font-size: 0.93rem;
    line-height: 1.62;
    color: var(--lfh-text, #4A3F35);
    margin: 0 0 14px;
    flex-grow: 1;
}

.lfh-card__description p {
    margin: 0 0 8px;
}

.lfh-card__description p:last-child {
    margin-bottom: 0;
}

.lfh-card__meta {
    font-family: var(--lfh-font-ui, "Inter", sans-serif);
    font-size: 0.78rem;
    color: var(--lfh-muted, #564241);
    margin-bottom: 16px;
    padding-top: 8px;
    border-top: 1px dashed rgba(86, 66, 65, 0.15);
}

/* Acciones y Botones de Tarjeta */
.lfh-card__action {
    margin-top: auto;
    padding-top: 12px;
}

.lfh-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
    font-family: var(--lfh-font-ui, "Inter", sans-serif);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.lfh-card__btn--button-primary {
    background: var(--lfh-primary, #701C1D);
    color: #FFFFFF !important;
    padding: 10px 22px;
    border-radius: var(--lfh-radius-sm, 2px);
    border: 1.5px solid var(--lfh-primary, #701C1D);
}

.lfh-card__btn--button-primary:hover {
    background: var(--lfh-primary-deep, #51040A);
    border-color: var(--lfh-primary-deep, #51040A);
    color: #FFFFFF !important;
}

.lfh-card__btn--button-outline {
    background: transparent;
    color: var(--lfh-primary, #701C1D) !important;
    padding: 10px 22px;
    border-radius: var(--lfh-radius-sm, 2px);
    border: 1.5px solid var(--lfh-primary, #701C1D);
}

.lfh-card__btn--button-outline:hover {
    background: var(--lfh-primary, #701C1D);
    color: #FFFFFF !important;
}

.lfh-card__btn--link {
    background: transparent;
    color: var(--lfh-primary, #701C1D) !important;
    padding: 4px 0;
    border-bottom: 2px solid var(--lfh-primary, #701C1D);
}

.lfh-card__btn--link:hover {
    color: var(--lfh-primary-deep, #51040A) !important;
    border-color: var(--lfh-primary-deep, #51040A);
}

.lfh-card__arrow {
    transition: transform 0.2s ease;
}

.lfh-card__btn--link:hover .lfh-card__arrow {
    transform: translateX(4px);
}

/* --------------------------------------------------------------------------
   Patrón de Tarjeta Clicable Completa (Stretched Link Accessible)
   -------------------------------------------------------------------------- */
.lfh-card--clickable {
    cursor: pointer;
}

.lfh-card--clickable .lfh-card__btn::after,
.lfh-card--clickable .lfh-card__stretched-link {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 10;
    cursor: pointer;
}

.lfh-card--clickable:hover {
    transform: translateY(-4px);
    box-shadow: var(--lfh-shadow-md, 0 10px 24px rgba(31, 25, 20, 0.08));
    border-color: #BDB2A5;
}

.lfh-card--clickable:hover .lfh-card__btn--button-primary {
    background: var(--lfh-primary-deep, #51040A);
    border-color: var(--lfh-primary-deep, #51040A);
    color: #FFFFFF !important;
}

.lfh-card--clickable:hover .lfh-card__btn--button-outline {
    background: var(--lfh-primary, #701C1D);
    border-color: var(--lfh-primary, #701C1D);
    color: #FFFFFF !important;
}

.lfh-card--clickable:hover .lfh-card__btn--link {
    color: var(--lfh-primary-deep, #51040A) !important;
    border-color: var(--lfh-primary-deep, #51040A);
}

.lfh-card--clickable:hover .lfh-card__btn--link .lfh-card__arrow {
    transform: translateX(4px);
}

/* --------------------------------------------------------------------------
   4. LfhCallToAction: Banner CTA y 4 Variantes Cromáticas
   -------------------------------------------------------------------------- */
.lfh-cta-banner {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 64px 0;
    box-sizing: border-box;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.lfh-cta-banner__inner {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 clamp(20px, 4vw, 40px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.lfh-cta-banner--with-image .lfh-cta-banner__inner {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 36px;
    align-items: center;
    text-align: left;
}

.lfh-cta-banner__image-wrap {
    width: 100%;
    max-height: 260px;
    border-radius: var(--lfh-radius-sm, 2px);
    overflow: hidden;
}

.lfh-cta-banner__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.lfh-cta-banner__eyebrow {
    font-family: var(--lfh-font-ui, "Inter", sans-serif);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    margin-bottom: 12px;
}

.lfh-cta-banner__title {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif);
    font-size: clamp(1.8rem, 3.2vw, 2.6rem);
    font-weight: 700;
    margin: 0 0 16px;
    line-height: 1.22;
}

.lfh-cta-banner__lead {
    font-family: var(--lfh-font-body, "Habibi", Georgia, serif);
    font-size: 1.05rem;
    line-height: 1.65;
    margin: 0 auto 28px;
    max-width: 720px;
}

.lfh-cta-banner--with-image .lfh-cta-banner__lead {
    margin: 0 0 28px;
}

.lfh-cta-banner__actions {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

.lfh-cta-banner--with-image .lfh-cta-banner__actions {
    justify-content: flex-start;
}

.lfh-cta-banner__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 13px 30px;
    font-family: var(--lfh-font-ui, "Inter", sans-serif);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    text-decoration: none;
    border-radius: var(--lfh-radius-sm, 2px);
    transition: all 0.2s ease;
    box-sizing: border-box;
}

/* --- Variante 1: burgundy (Vino Tinto Profundo) --- */
.lfh-cta-banner--burgundy {
    background: var(--lfh-primary-deep, #51040A);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: #FFFFFF;
}

.lfh-cta-banner--burgundy .lfh-cta-banner__eyebrow {
    color: var(--lfh-coral, #F8837E);
}

.lfh-cta-banner--burgundy .lfh-cta-banner__title {
    color: var(--lfh-coral, #F8837E);
}

.lfh-cta-banner--burgundy .lfh-cta-banner__lead {
    color: #F7EFEF;
}

.lfh-cta-banner--burgundy .lfh-cta-banner__btn--primary {
    border: 1.5px solid var(--lfh-coral, #F8837E);
    color: var(--lfh-coral, #F8837E) !important;
    background: transparent;
}

.lfh-cta-banner--burgundy .lfh-cta-banner__btn--primary:hover {
    background: var(--lfh-coral, #F8837E);
    color: var(--lfh-primary-deep, #51040A) !important;
}

.lfh-cta-banner--burgundy .lfh-cta-banner__btn--secondary {
    border: 1.5px solid rgba(255, 255, 255, 0.6);
    color: #FFFFFF !important;
    background: transparent;
}

.lfh-cta-banner--burgundy .lfh-cta-banner__btn--secondary:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: #FFFFFF;
}

/* --- Variante 2: dark (Carbón / Noche de Archivo) --- */
.lfh-cta-banner--dark {
    background: var(--lfh-ink, #1C1C19);
    border-top: 1px solid rgba(200, 158, 106, 0.2);
    color: #FFFFFF;
}

.lfh-cta-banner--dark .lfh-cta-banner__eyebrow {
    color: var(--lfh-gold, #C89E6A);
}

.lfh-cta-banner--dark .lfh-cta-banner__title {
    color: #FFFFFF;
}

.lfh-cta-banner--dark .lfh-cta-banner__lead {
    color: #E2DCD5;
}

.lfh-cta-banner--dark .lfh-cta-banner__btn--primary {
    background: var(--lfh-gold, #C89E6A);
    color: #1C1C19 !important;
    border: 1.5px solid var(--lfh-gold, #C89E6A);
}

.lfh-cta-banner--dark .lfh-cta-banner__btn--primary:hover {
    background: #DFC198;
    border-color: #DFC198;
    color: #1C1C19 !important;
}

.lfh-cta-banner--dark .lfh-cta-banner__btn--secondary {
    border: 1.5px solid rgba(226, 220, 213, 0.5);
    color: #E2DCD5 !important;
    background: transparent;
}

.lfh-cta-banner--dark .lfh-cta-banner__btn--secondary:hover {
    border-color: #FFFFFF;
    color: #FFFFFF !important;
    background: rgba(255, 255, 255, 0.1);
}

/* --- Variante 3: cream (Crema Editorial) --- */
.lfh-cta-banner--cream {
    background: var(--lfh-surface-low, #F8F6F0);
    border-top: 1px solid var(--lfh-border, #E2DCD5);
    border-bottom: 1px solid var(--lfh-border, #E2DCD5);
    color: var(--lfh-text, #4A3F35);
}

.lfh-cta-banner--cream .lfh-cta-banner__eyebrow {
    color: var(--lfh-primary, #701C1D);
}

.lfh-cta-banner--cream .lfh-cta-banner__title {
    color: var(--lfh-ink, #1C1C19);
}

.lfh-cta-banner--cream .lfh-cta-banner__lead {
    color: var(--lfh-text, #4A3F35);
}

.lfh-cta-banner--cream .lfh-cta-banner__btn--primary {
    background: var(--lfh-primary, #701C1D);
    color: #FFFFFF !important;
    border: 1.5px solid var(--lfh-primary, #701C1D);
}

.lfh-cta-banner--cream .lfh-cta-banner__btn--primary:hover {
    background: var(--lfh-primary-deep, #51040A);
    border-color: var(--lfh-primary-deep, #51040A);
}

.lfh-cta-banner--cream .lfh-cta-banner__btn--secondary {
    border: 1.5px solid var(--lfh-primary, #701C1D);
    color: var(--lfh-primary, #701C1D) !important;
    background: transparent;
}

.lfh-cta-banner--cream .lfh-cta-banner__btn--secondary:hover {
    background: var(--lfh-primary-light, #F7EFEF);
}

/* --- Variante 4: white (Blanco Puro Editorial) --- */
.lfh-cta-banner--white {
    background: #FFFFFF;
    border-top: 1px solid var(--lfh-border, #E2DCD5);
    border-bottom: 1px solid var(--lfh-border, #E2DCD5);
    color: var(--lfh-text, #4A3F35);
}

.lfh-cta-banner--white .lfh-cta-banner__eyebrow {
    color: var(--lfh-primary, #701C1D);
}

.lfh-cta-banner--white .lfh-cta-banner__title {
    color: var(--lfh-ink, #1C1C19);
}

.lfh-cta-banner--white .lfh-cta-banner__lead {
    color: var(--lfh-text, #4A3F35);
}

.lfh-cta-banner--white .lfh-cta-banner__btn--primary {
    background: var(--lfh-primary, #701C1D);
    color: #FFFFFF !important;
    border: 1.5px solid var(--lfh-primary, #701C1D);
}

.lfh-cta-banner--white .lfh-cta-banner__btn--primary:hover {
    background: var(--lfh-primary-deep, #51040A);
    border-color: var(--lfh-primary-deep, #51040A);
}

.lfh-cta-banner--white .lfh-cta-banner__btn--secondary {
    border: 1.5px solid var(--lfh-border, #E2DCD5);
    color: var(--lfh-ink, #1C1C19) !important;
    background: transparent;
}

.lfh-cta-banner--white .lfh-cta-banner__btn--secondary:hover {
    background: var(--lfh-surface-low, #F8F6F0);
    border-color: #BDB2A5;
}

/* --------------------------------------------------------------------------
   5. Sistema Responsive y Accesibilidad WCAG (Mobile-First Constraints)
   -------------------------------------------------------------------------- */
/* Tablet Breakpoint (769px - 1024px) */
@media screen and (max-width: 1024px) {
    .lfh-cards-grid--grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    
    .lfh-cards-grid--split {
        grid-template-columns: 1fr;
    }

    .lfh-cta-banner--with-image .lfh-cta-banner__inner {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .lfh-cta-banner--with-image .lfh-cta-banner__actions {
        justify-content: center;
    }
}

/* Mobile Breakpoint (<= 768px): 100% Fluid 1-Columna & Touch Targets >= 48px */
@media screen and (max-width: 768px) {
    .lfh-cards-container {
        margin: 32px auto;
        padding: 0 16px;
    }

    .lfh-cards-grid {
        grid-template-columns: 1fr !important;
        gap: 20px;
    }

    .lfh-cards-grid--grid-2 {
        max-width: 100%;
    }

    .lfh-card__body {
        padding: 18px 16px;
    }

    /* WCAG AA Touch Target Standard: >= 48px */
    .lfh-card__btn--button-primary,
    .lfh-card__btn--button-outline {
        width: 100% !important;
        min-height: 48px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        box-sizing: border-box !important;
        text-align: center !important;
        padding: 12px 20px !important;
    }

    .lfh-card__btn--link {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    .lfh-cta-banner {
        padding: 44px 0;
    }

    .lfh-cta-banner__inner {
        padding: 0 20px;
    }

    .lfh-cta-banner__actions {
        flex-direction: column;
        width: 100%;
        gap: 12px;
    }

    .lfh-cta-banner__btn {
        width: 100% !important;
        min-height: 48px !important;
        box-sizing: border-box !important;
    }
}


/* --- MODULE: 20-search-collections.css --- */
/* LFH 20-search-collections.css */

/* Advanced Search Layout and Facets */
.search-form-advanced {
    background: #FFFFFF;
    border: 1px solid var(--lfh-border);
    border-radius: 0;
    padding: 32px;
    box-shadow: 0 2px 10px rgba(44, 62, 80, 0.03);
    margin-bottom: 40px;
}

.search-form-advanced .field {
    margin-bottom: 24px;
}

.search-form-advanced label {
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 700;
    color: var(--lfh-ink);
    font-size: 1.1rem;
    margin-bottom: 8px;
    display: block;
}

/* Collections Grid & Cards */
.resource-list--grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 32px;
    list-style: none;
    padding: 0;
    margin: 0 0 48px;
}

.resource-list--grid .resource {
    background: #FFFFFF;
    border: 1px solid #D6D0C7;
    border-top: 3px solid #A3432D;
    border-radius: 0;
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
}

.resource-list--grid .resource:hover {
    transform: translateY(-2px);
    border-color: #B8B0A5;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}

.resource-list--grid .resource img,
.resource-list--grid .resource .thumbnail {
    width: 100%;
    max-height: 180px;
    object-fit: cover;
    border-radius: 0;
    margin-bottom: 16px;
    border: 1px solid #D6D0C7;
}

.resource-list--grid .resource h4 {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.35rem;
    font-weight: 700;
    color: #000000;
    margin: 0 0 12px;
    line-height: 1.3;
}

.resource-list--grid .resource h4 a {
    color: #000000;
    text-decoration: none;
    transition: color 0.15s ease;
}

.resource-list--grid .resource h4 a:hover {
    color: #A3432D;
}

.resource-list--grid .resource .description {
    font-size: 0.95rem;
    line-height: 1.65;
    color: #4A4A4A;
    margin-bottom: 20px;
}

/* Hemeroteca Section & Newspaper Cards Grid */
.lfh-hemerographic-section {
    padding: 32px 0 64px !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
    gap: 28px !important;
    align-items: stretch !important;
}

.lfh-hemerographic-section > .lfh-section__eyebrow,
.lfh-hemerographic-section > .lfh-section__title,
.lfh-hemerographic-section > .lfh-section__lead {
    grid-column: 1 / -1 !important;
}

.lfh-hemerographic-section .lfh-collection-card,
.lfh-hemerographic-section .lfh-collection-card--featured {
    margin-top: 0 !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-shadow: none !important;
    padding-bottom: 28px !important;
    border-bottom: 0.5px solid var(--lfh-editorial-line) !important;
    transition: transform 0.2s ease !important;
    overflow: visible !important;
}

.lfh-hemerographic-section .lfh-collection-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: none !important;
}

.lfh-hemerographic-section .lfh-collection-card__media {
    background: transparent !important;
    padding: 0 0 16px !important;
    border-bottom: none !important;
    height: 110px !important;
    max-height: 110px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-decoration: none !important;
}

.lfh-hemerographic-section .lfh-collection-card__media img {
    max-height: 75px !important;
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    display: block !important;
    background: #FFFFFF !important;
    padding: 8px 12px !important;
    border: 0.5px solid var(--lfh-editorial-line) !important;
    border-radius: 2px !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03) !important;
    transition: transform 0.2s ease, border-color 0.2s ease !important;
}

.lfh-hemerographic-section .lfh-collection-card:hover .lfh-collection-card__media img {
    transform: scale(1.02) !important;
    border-color: var(--lfh-primary) !important;
}

.lfh-hemerographic-section .lfh-collection-card__body {
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
    justify-content: space-between !important;
    background: transparent !important;
}

.lfh-hemerographic-section .lfh-collection-card__body .lfh-section__eyebrow {
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: var(--lfh-gold) !important;
    margin-bottom: 6px !important;
}

.lfh-hemerographic-section .lfh-collection-card__body h3 {
    font-family: var(--lfh-font-heading) !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: var(--lfh-ink) !important;
    margin: 0 0 10px !important;
    line-height: 1.25 !important;
}

.lfh-hemerographic-section .lfh-collection-card__body p {
    font-family: var(--lfh-font-body) !important;
    font-size: 0.92rem !important;
    color: var(--lfh-text) !important;
    line-height: 1.6 !important;
    margin: 0 0 20px !important;
    flex-grow: 1 !important;
}

.lfh-hemerographic-section .lfh-collection-card__body .button,
.lfh-hemeroteca-directory-section .button,
.lfh-directory-card__btn {
    margin-top: auto !important;
    background: var(--lfh-primary) !important;
    color: #FFFFFF !important;
    border: none !important;
    border-radius: var(--lfh-radius-sm) !important;
    padding: 11px 16px !important;
    font-family: var(--lfh-font-ui) !important;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    text-align: center !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.3 !important;
    transition: background 0.15s ease !important;
}

.lfh-hemerographic-section .lfh-collection-card__body .button:hover,
.lfh-hemeroteca-directory-section .button:hover,
.lfh-directory-card__btn:hover {
    background: var(--lfh-primary-deep) !important;
    color: #FFFFFF !important;
}

/* Carousel Fixes: Avoid overlapping captions & dots */
.carousel-block {
    margin-bottom: 52px !important;
    padding-bottom: 40px !important;
    position: relative !important;
}

.carousel-block .slick-dots {
    bottom: -15px !important;
}

@media (max-width: 600px) {
    .carousel-block .slick-dots,
    .carousel-block .slick-autoplay-toggle-button {
        display: none !important;
    }
    .carousel-block {
        margin-bottom: 28px !important;
        padding-bottom: 8px !important;
    }
}

.carousel-block .slick-slide {
    text-align: center !important;
    padding: 8px 0 !important;
}

.carousel-block .slick-slide img {
    max-height: 140px !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 auto 12px !important;
    object-fit: contain !important;
    border: 1px solid var(--lfh-border) !important;
    background: #FFFFFF !important;
    padding: 12px !important;
}

.carousel-block .slide-text,
.carousel-block .slick-slide a,
.carousel-block .slick-slide p {
    font-size: 0.88rem !important;
    color: var(--lfh-text) !important;
    line-height: 1.45 !important;
    text-decoration: none !important;
}

.carousel-block .slide-text a,
.carousel-block .slick-slide a {
    color: var(--lfh-primary) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.carousel-block .slide-text a:hover,
.carousel-block .slick-slide a:hover {
    color: var(--lfh-primary-deep) !important;
    text-decoration: underline !important;
}

.lfh-hemerographic-callout {
    background: #FFFFFF;
    border: 1px solid var(--lfh-border);
    border-left: 4px solid var(--lfh-primary);
    border-radius: 0;
    padding: 28px 32px;
    margin-top: 28px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    box-shadow: 0 2px 10px rgba(44, 62, 80, 0.03);
}

.lfh-hemerographic-callout h3 {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.4rem;
    color: var(--lfh-ink);
    margin: 0 0 8px;
}

.lfh-hemerographic-callout p {
    margin: 0;
    color: var(--lfh-text);
    font-size: 0.98rem;
    line-height: 1.6;
}

@media (max-width: 767px) {
    .lfh-hemerographic-section {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .lfh-hemerographic-section .lfh-collection-card__media {
        height: 100px !important;
        max-height: 100px !important;
        padding: 12px 14px !important;
    }

    .lfh-hemerographic-section .lfh-collection-card__media img {
        max-height: 65px !important;
    }

    .lfh-hemerographic-section .lfh-collection-card__body {
        padding: 16px 14px !important;
    }

    .lfh-hemerographic-section .lfh-collection-card__body h3 {
        font-size: 1.15rem !important;
    }

    .lfh-hemerographic-section .lfh-collection-card__body p {
        font-size: 0.88rem !important;
        line-height: 1.5 !important;
        margin-bottom: 14px !important;
    }

    .lfh-hemerographic-section .lfh-collection-card__body .button,
    .lfh-hemeroteca-directory-section .button,
    .lfh-directory-card__btn {
        padding: 10px 12px !important;
        font-size: 0.80rem !important;
        width: 100% !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }

    .lfh-hemerographic-callout {
        flex-direction: column;
        align-items: flex-start;
        padding: 20px;
    }

    .lfh-hemerographic-callout .button {
        width: 100%;
        text-align: center;
    }
}

/* ==========================================================================
   Periódico El Pueblo (Familia Hemerográfica & Ediciones) - Redesign
   ========================================================================== */
.lfh-pueblo-page {
    max-width: 1240px;
    margin: 0 auto;
    padding: 24px 0 60px;
    box-sizing: border-box;
}

.lfh-pueblo-header {
    text-align: center;
    margin-bottom: 48px;
}

.lfh-pueblo-header .lfh-section__eyebrow {
    color: #A3432D;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.lfh-pueblo-title {
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(2.2rem, 4.5vw, 3.2rem);
    color: #000000 !important;
    font-weight: 700;
    margin: 0 0 20px;
    line-height: 1.12;
    letter-spacing: -0.01em;
}

.lfh-pueblo-period {
    color: #A3432D;
    font-weight: 600;
}

.lfh-pueblo-masthead-frame {
    max-width: 820px;
    margin: 28px auto;
    background: #FFFFFF;
    border: 1px solid #D9D3CA;
    border-radius: 0;
    padding: 24px 32px 16px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
}

.lfh-pueblo-masthead-img {
    width: 100%;
    max-height: 130px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

.lfh-pueblo-masthead-caption {
    font-size: 0.82rem;
    color: #4A4A4A;
    text-align: center;
    margin-top: 14px;
    font-style: italic;
    letter-spacing: 0.02em;
    border-top: 1px solid #ECE7E1;
    padding-top: 10px;
}

.lfh-pueblo-lead {
    max-width: 82ch;
    margin: 28px auto 0;
    font-size: 1.12rem;
    line-height: 1.8;
    color: #1F2937;
}

.lfh-pueblo-lead strong {
    color: #000000;
}

/* Ficha Técnica */
.lfh-pueblo-metadata-section {
    margin: 48px 0 56px;
}

.lfh-pueblo-metadata-card {
    background: #FFFFFF;
    border: 1px solid #D6D0C7;
    border-top: 3px solid #111827;
    border-radius: 0;
    padding: 36px 40px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
}

.lfh-pueblo-metadata-title {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.5rem;
    color: #000000;
    font-weight: 700;
    margin: 0 0 24px;
    border-bottom: 1px solid #ECE7E1;
    padding-bottom: 14px;
}

.lfh-pueblo-metadata-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 22px 32px;
}

.lfh-meta-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lfh-meta-label {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #555555;
    font-weight: 700;
}

.lfh-meta-value {
    font-size: 0.98rem;
    color: #000000;
    font-weight: 600;
    line-height: 1.5;
}

.lfh-meta-value a {
    color: #A3432D !important;
    text-decoration: underline;
    font-weight: 700;
    transition: color 0.15s ease;
}

.lfh-meta-value a:hover {
    color: #000000 !important;
}

/* Secciones de Años y Fichas */
.lfh-pueblo-editions-section {
    margin-top: 36px;
}

.lfh-pueblo-year-block {
    margin-bottom: 60px;
}

.lfh-pueblo-year-header {
    display: flex;
    align-items: center;
    gap: 18px;
    border-bottom: 2px solid #D6D0C7;
    padding-bottom: 14px;
    margin-bottom: 32px;
}

.lfh-pueblo-year-badge {
    background: #111827;
    color: #FFFFFF;
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 700;
    font-size: 1.25rem;
    padding: 6px 20px;
    border-radius: 0;
    letter-spacing: 0.04em;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.lfh-pueblo-year-title {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.65rem;
    color: #000000;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.lfh-pueblo-year-count {
    font-size: 1rem;
    color: #666666;
    font-weight: 400;
    font-family: "Habibi", Georgia, serif;
    margin-left: 6px;
}

/* Grilla de Ediciones Amplia y Espaciosa */
.lfh-pueblo-editions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 28px;
}

.lfh-pueblo-edition-card {
    background: #FFFFFF;
    border: 1px solid #D6D0C7;
    border-top: 3px solid #A3432D;
    border-radius: 0;
    padding: 28px 24px 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.lfh-pueblo-edition-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
    border-color: #B0A89C;
}

.lfh-pueblo-edition-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 14px;
    border-bottom: 1px solid #F0ECE4;
    padding-bottom: 10px;
}

.lfh-pueblo-edition-card__date-code {
    font-size: 0.88rem;
    font-weight: 700;
    color: #000000;
    letter-spacing: 0.06em;
    font-variant-numeric: lining-nums tabular-nums;
}

.lfh-pueblo-badge {
    font-size: 0.72rem;
    background: #111827;
    color: #FFFFFF;
    padding: 3px 10px;
    border-radius: 0;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.lfh-pueblo-edition-card__title {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.32rem;
    color: #000000;
    font-weight: 700;
    margin: 4px 0 10px;
    line-height: 1.35;
}

.lfh-pueblo-edition-card__desc {
    font-size: 0.94rem;
    line-height: 1.65;
    color: #4A4A4A;
    margin: 0 0 24px;
    flex-grow: 1;
}

.lfh-pueblo-edition-card__actions {
    display: flex;
    gap: 12px;
    align-items: stretch;
    margin-top: auto;
}

.lfh-btn-pdf {
    flex: 1.2;
    background: #A3432D !important;
    color: #FFFFFF !important;
    border: 1px solid #A3432D !important;
    font-family: "Habibi", Georgia, serif;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em;
    padding: 11px 16px !important;
    text-align: center;
    border-radius: 0 !important;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.15s ease;
    box-shadow: none;
}

.lfh-btn-pdf:hover {
    background: #872E1B !important;
    border-color: #872E1B !important;
    color: #FFFFFF !important;
}

.lfh-btn-item {
    flex: 1;
    background: #FFFFFF !important;
    color: #000000 !important;
    border: 1.5px solid #111827 !important;
    font-family: "Habibi", Georgia, serif;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em;
    padding: 11px 14px !important;
    text-align: center;
    border-radius: 0 !important;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.lfh-btn-item:hover {
    background: #111827 !important;
    color: #FFFFFF !important;
}

/* Cierre y Consulta */
.lfh-pueblo-footer-notice {
    margin: 64px 0 24px;
    background: #111827;
    border-radius: 0;
    border-top: 3px solid var(--lfh-primary);
    padding: 44px 48px;
    color: #FFFFFF;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.lfh-pueblo-footer-notice .lfh-section__eyebrow {
    color: #E2DDD5;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.lfh-pueblo-footer-notice__title {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.8rem;
    color: #FFFFFF;
    font-weight: 700;
    margin: 0 0 16px;
}

.lfh-pueblo-footer-notice__text {
    font-size: 1.05rem;
    line-height: 1.75;
    color: #E2DDD5;
    max-width: 80ch;
    margin: 0 0 28px;
}

.lfh-pueblo-footer-notice__text em {
    color: #FFFFFF;
    font-style: italic;
}

.lfh-pueblo-footer-notice__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.lfh-pueblo-footer-notice__actions .btn--primary {
    background: #A3432D !important;
    border: 1px solid #A3432D !important;
    color: #FFFFFF !important;
    font-weight: 700;
    padding: 12px 24px;
}

.lfh-pueblo-footer-notice__actions .btn--primary:hover {
    background: #872E1B !important;
}

.lfh-pueblo-footer-notice__actions .btn--secondary {
    background: transparent !important;
    border: 1.5px solid #FFFFFF !important;
    color: #FFFFFF !important;
    font-weight: 700;
    padding: 12px 24px;
}

.lfh-pueblo-footer-notice__actions .btn--secondary:hover {
    background: #FFFFFF !important;
    color: #000000 !important;
}

/* Responsive El Pueblo */
@media (max-width: 991px) {
    .lfh-pueblo-editions-grid {
        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
        gap: 20px;
    }
}

@media (max-width: 767px) {
    body[class*="site-page-"] #content,
    .site-page-el-pueblo #content,
    .site-page-el-pueblo .blocks,
    .site-page-el-pueblo .blocks-inner,
    .lfh-pueblo-page {
        padding-left: 14px !important;
        padding-right: 14px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .lfh-pueblo-page {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding: 12px 0 40px !important;
    }

    .lfh-pueblo-header {
        text-align: center;
        width: 100% !important;
        box-sizing: border-box !important;
        margin-bottom: 28px;
    }

    .lfh-pueblo-title {
        font-size: 1.55rem !important;
        line-height: 1.25 !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
        margin: 6px 0 14px !important;
    }

    .lfh-pueblo-period {
        display: block !important;
        font-size: 1.15rem !important;
        margin-top: 4px !important;
    }

    .lfh-pueblo-masthead-frame {
        padding: 14px 12px;
        box-sizing: border-box;
        margin: 18px auto;
        width: 100% !important;
        max-width: 100% !important;
    }

    .lfh-pueblo-masthead-img {
        max-width: 100% !important;
        height: auto !important;
    }

    .lfh-pueblo-lead {
        font-size: 0.96rem !important;
        line-height: 1.65 !important;
        padding: 0 4px !important;
    }

    .lfh-pueblo-metadata-card {
        padding: 22px 16px;
        box-sizing: border-box;
        width: 100% !important;
    }

    .lfh-pueblo-metadata-title {
        font-size: 1.2rem;
    }

    .lfh-pueblo-metadata-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .lfh-pueblo-year-header {
        flex-wrap: wrap;
        gap: 10px;
        align-items: center;
    }

    .lfh-pueblo-year-title {
        font-size: 1.25rem !important;
        line-height: 1.3 !important;
    }

    .lfh-pueblo-editions-grid {
        grid-template-columns: 1fr;
        gap: 18px;
        width: 100% !important;
    }

    .lfh-pueblo-edition-card {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding: 20px 16px;
    }

    .lfh-pueblo-edition-card__header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
    }

    .lfh-pueblo-badge {
        font-size: 0.65rem !important;
        padding: 3px 7px !important;
        white-space: nowrap !important;
    }

    .lfh-pueblo-edition-card__actions {
        flex-direction: column;
        gap: 10px;
    }

    .lfh-btn-pdf,
    .lfh-btn-item {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .lfh-pueblo-footer-notice {
        padding: 26px 18px;
        box-sizing: border-box;
        margin: 36px 0 20px;
        width: 100% !important;
    }

    .lfh-pueblo-footer-notice__title {
        font-size: 1.35rem;
    }

    .lfh-pueblo-footer-notice__text {
        font-size: 0.92rem;
    }

    .lfh-pueblo-footer-notice__actions {
        flex-direction: column;
        gap: 12px;
    }

    .lfh-pueblo-footer-notice__actions .button {
        width: 100%;
        text-align: center;
        box-sizing: border-box;
    }
}

/* ==========================================================================
   LFH Header Search Form & Search Results Page
   ========================================================================== */
.lfh-search-form {
    position: relative;
    width: 100%;
    max-width: 320px;
}

.lfh-search-input-wrap {
    display: flex;
    align-items: center;
    background: #FFFFFF;
    border: 1px solid #C4BAB0;
    border-radius: 0;
    overflow: hidden;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.lfh-search-input-wrap:focus-within {
    border-color: #701C1D;
    box-shadow: 0 0 0 2px rgba(112, 28, 29, 0.15);
}

.lfh-search-input-wrap input[type="text"] {
    flex: 1;
    border: none;
    background: transparent;
    padding: 8px 12px;
    font-size: 0.88rem;
    color: #1F1914;
    outline: none;
}

.lfh-search-input-wrap button {
    background: transparent;
    border: none;
    padding: 8px 12px;
    color: #701C1D;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
}

.lfh-search-input-wrap button:hover {
    color: #920B0B;
}

.lfh-search-card:hover {
    transform: translateY(-2px);
    border-color: #701C1D !important;
    box-shadow: 0 8px 20px rgba(112, 28, 29, 0.08) !important;
}

.lfh-search-tag:hover {
    background: #701C1D !important;
    color: #FFFFFF !important;
    border-color: #701C1D !important;
}

/* ==========================================================================
   LFH Multi-Colección & Modos de Visualización (Cards / Slim / Lines)
   Laboratorio de Fuentes Históricas (LFH - UTP)
   ========================================================================== */

/* 1. Pestañas Multi-Colección */
.lfh-collection-tabs-bar {
    margin: 28px 0 32px;
    padding: 20px 24px;
    background: #FFFFFF;
    border: 1px solid #D6D0C7;
    border-top: 3px solid #A3432D;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.lfh-collection-tabs-bar__header {
    margin-bottom: 14px;
}

.lfh-collection-tabs-bar__title {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.4rem;
    color: #111827;
    margin: 4px 0 0;
    font-weight: 700;
}

.lfh-collection-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.lfh-collection-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    background: #FAF8F5;
    border: 1.5px solid #D6D0C7;
    border-radius: 4px;
    font-family: "Habibi", Georgia, serif;
    font-size: 0.92rem;
    font-weight: 600;
    color: #333333;
    cursor: pointer;
    transition: all 0.2s ease;
}

.lfh-collection-tab:hover {
    background: #F0EAE1;
    border-color: #B0A89C;
    color: #111111;
}

.lfh-collection-tab.is-active {
    background: #A3432D;
    border-color: #A3432D;
    color: #FFFFFF;
    box-shadow: 0 2px 6px rgba(163, 67, 45, 0.25);
}

.lfh-collection-tab__count {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    background: rgba(0, 0, 0, 0.08);
    color: inherit;
    font-variant-numeric: tabular-nums lining-nums;
}

.lfh-collection-tab.is-active .lfh-collection-tab__count {
    background: rgba(255, 255, 255, 0.25);
    color: #FFFFFF;
}

/* 2. Barra de Herramientas de Colección (Buscador, Contador, Conmutador) */
.lfh-collection-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin: 28px 0;
    padding: 12px 18px;
    background: #FFFFFF;
    border: 1px solid #D6D0C7;
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
    flex-wrap: wrap;
}

.lfh-toolbar-search {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 260px;
    max-width: 460px;
}

.lfh-search-icon {
    position: absolute;
    left: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #888888;
    pointer-events: none;
    line-height: 1;
    z-index: 2;
}

.lfh-search-icon svg {
    width: 15px;
    height: 15px;
    stroke: #888888;
    transition: stroke 0.2s ease;
    display: block;
}

.lfh-toolbar-search:focus-within .lfh-search-icon svg {
    stroke: #A3432D;
}

.lfh-editions-search-input {
    width: 100%;
    height: 38px;
    padding: 0 32px 0 36px;
    border: 1.5px solid #D6D0C7;
    border-radius: 4px;
    font-family: "Habibi", Georgia, serif;
    font-size: 0.92rem;
    color: #111827;
    background: #FAF8F5;
    transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
}

.lfh-editions-search-input:focus {
    border-color: #A3432D;
    background: #FFFFFF;
    outline: none;
    box-shadow: 0 0 0 3px rgba(163, 67, 45, 0.12);
}

.lfh-search-clear-btn {
    position: absolute;
    right: 8px;
    background: none;
    border: none;
    font-size: 1.25rem;
    line-height: 1;
    color: #888888;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 999px;
}

.lfh-search-clear-btn:hover {
    color: #A3432D;
}

.lfh-toolbar-count {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-family: "Habibi", Georgia, serif;
    font-size: 0.92rem;
    color: #4A4A4A;
    white-space: nowrap;
}

.lfh-count-number {
    font-size: 1.15rem;
    font-weight: 700;
    color: #A3432D;
    font-variant-numeric: lining-nums tabular-nums;
}

.lfh-count-label {
    font-size: 0.88rem;
    color: #666666;
    text-transform: lowercase;
}

.lfh-view-switcher {
    display: inline-flex;
    align-items: center;
    background: #F0ECE6;
    border: 1px solid #D6D0C7;
    border-radius: 4px;
    padding: 3px;
    gap: 3px;
}

.lfh-view-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: none;
    background: transparent;
    font-family: "Habibi", Georgia, serif;
    font-size: 0.82rem;
    font-weight: 600;
    color: #4A4A4A;
    border-radius: 3px;
    cursor: pointer;
    transition: all 0.15s ease;
    line-height: 1;
}

.lfh-view-btn:hover {
    color: #111827;
    background: rgba(255, 255, 255, 0.6);
}

.lfh-view-btn.is-active {
    background: #FFFFFF;
    color: #A3432D;
    font-weight: 700;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.lfh-view-icon {
    font-size: 0.95rem;
    line-height: 1;
}

/* 3. Navegación por Años */
.lfh-hemeroteca-year-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 28px;
    padding: 12px 18px;
    background: #FAF8F5;
    border: 1px solid #D6D0C7;
    border-radius: 4px;
}

.lfh-year-nav-label {
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #A3432D;
    align-self: center;
    margin-right: 6px;
}

.lfh-year-nav-pill {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 999px;
    background: #A3432D;
    color: #FFFFFF;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.15s ease, opacity 0.15s ease;
}

.lfh-year-nav-pill:hover {
    background: #872E1B;
    color: #FFFFFF;
}

.lfh-no-results-notice {
    text-align: center;
    padding: 36px 20px;
    background: #FAF8F5;
    border: 1px dashed #D6D0C7;
    border-radius: 4px;
    margin: 24px 0;
    color: #666666;
    font-family: "Habibi", Georgia, serif;
}

/* ==========================================================================
   MODOS DE VISUALIZACIÓN DE FICHAS (Cards, Slim, Lines)
   ========================================================================== */

/* MODO 1: Cards (Tarjetas Estándar) - Hereda estilos amplios existentes */
.lfh-view--cards .lfh-pueblo-editions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 28px;
}

/* MODO 2: Slim (Tarjetas Delgadas / Vista Intermedia Compacta) */
.lfh-view--slim .lfh-pueblo-editions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
}

.lfh-view--slim .lfh-pueblo-edition-card {
    padding: 14px 16px 14px;
    border-top-width: 2px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02);
    min-height: auto !important;
}

.lfh-view--slim .lfh-pueblo-edition-card__header {
    margin-bottom: 8px;
    padding-bottom: 6px;
}

.lfh-view--slim .lfh-pueblo-edition-card__date-code {
    font-size: 0.82rem;
}

.lfh-view--slim .lfh-pueblo-badge {
    font-size: 0.68rem;
    padding: 2px 8px;
}

.lfh-view--slim .lfh-pueblo-edition-card__title {
    font-size: 1.05rem;
    margin: 2px 0 14px;
    line-height: 1.35;
}

/* Ocultar descripción de todas las tarjetas en modo Slim */
.lfh-view--slim .lfh-edition-card__desc,
.lfh-view--slim .lfh-pueblo-edition-card__desc,
.lfh-view--slim .lfh-hemeroteca-edition-card__meta,
.lfh-view--slim .lfh-pueblo-edition-card__meta {
    display: none !important;
}

.lfh-view--slim .lfh-pueblo-edition-card__actions {
    gap: 8px;
    margin-top: auto;
}

.lfh-view--slim .lfh-btn-pdf,
.lfh-view--slim .lfh-btn-item {
    padding: 7px 12px !important;
    font-size: 0.78rem !important;
}

/* Metadato de fecha para colecciones documentales y fondos */
.lfh-edition-card__date-meta {
    font-size: 0.82rem;
    color: #701C1D;
    font-weight: 600;
    margin-bottom: 6px;
    line-height: 1.3;
}

.lfh-date-meta__prefix {
    font-weight: 500;
    opacity: 0.8;
}

.lfh-date-meta__val {
    font-weight: 600;
}

/* MODO 3: Lines (Línea Simple / Recortada · Máxima Densidad: FECHA | TÍTULO | PDF | FICHA) */
.lfh-view--lines .lfh-pueblo-editions-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: #FFFFFF;
    border: 1px solid #D6D0C7;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02);
}

.lfh-view--lines .lfh-pueblo-edition-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 44px !important;
    padding: 6px 18px !important;
    margin: 0 !important;
    border: none !important;
    border-bottom: 1px solid #F0ECE6 !important;
    border-top: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    transition: background-color 0.15s ease !important;
    background: transparent !important;
}

.lfh-view--lines .lfh-pueblo-edition-card:nth-child(even) {
    background-color: #FAF8F5 !important;
}

.lfh-view--lines .lfh-pueblo-edition-card:hover {
    background-color: #F2ECE4 !important;
}

.lfh-view--lines .lfh-pueblo-edition-card:last-child {
    border-bottom: none !important;
}

/* Columna 1: Código de fecha + Identificador (ancho uniforme fijo 250px) */
.lfh-view--lines .lfh-pueblo-edition-card__header {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
    flex: 0 0 250px !important;
    width: 250px !important;
    max-width: 250px !important;
    flex-shrink: 0 !important;
    margin-right: 20px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    overflow: hidden !important;
}

.lfh-view--lines .lfh-pueblo-edition-card__date-code {
    font-family: monospace, monospace !important;
    font-size: 0.86rem !important;
    font-weight: 700 !important;
    color: #A3432D !important;
    letter-spacing: 0.05em !important;
    flex: 0 0 88px !important;
    min-width: 88px !important;
    display: inline-block !important;
}

.lfh-view--lines .lfh-edition-card__ident {
    flex: 1 1 auto !important;
    max-width: 150px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: inline-block !important;
}

/* En vista líneas ocultamos el badge de texto y la descripción para máxima ligereza */
.lfh-view--lines .lfh-pueblo-badge {
    display: none !important;
}

/* Columna 2: Título a la izquierda con elipsis (...) y Fecha a la derecha a distancia uniforme */
.lfh-view--lines .lfh-edition-card__body {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin-right: 20px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
}

.lfh-view--lines .lfh-pueblo-edition-card__title {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-family: "Habibi", Georgia, serif !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    color: #1F2937 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.3 !important;
}

.lfh-view--lines .lfh-pueblo-edition-card__title a {
    display: inline-block !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    vertical-align: middle !important;
}

/* Columna de fecha con ancho fijo y alineación a la derecha */
.lfh-view--lines .lfh-edition-card__date-meta {
    flex: 0 0 190px !important;
    min-width: 170px !important;
    max-width: 210px !important;
    text-align: right !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0.82rem !important;
    color: #701C1D !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em !important;
    line-height: 1.3 !important;
}

.lfh-view--lines .lfh-edition-card__desc,
.lfh-view--lines .lfh-pueblo-edition-card__desc,
.lfh-view--lines .lfh-hemeroteca-edition-card__meta,
.lfh-view--lines .lfh-pueblo-edition-card__meta {
    display: none !important;
}

/* Columna 3: Acciones (PDF / FICHA) */
.lfh-view--lines .lfh-pueblo-edition-card__actions {
    margin-top: 0 !important;
    flex-shrink: 0 !important;
    display: flex !important;
    gap: 6px !important;
}

.lfh-view--lines .lfh-btn-pdf,
.lfh-view--lines .lfh-btn-item {
    flex: none !important;
    padding: 4px 10px !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    height: 26px !important;
    line-height: 18px !important;
    border-radius: 2px !important;
    box-sizing: border-box !important;
}

/* Responsivo para Líneas y Toolbar */
@media (max-width: 767px) {
    .lfh-collection-toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .lfh-toolbar-search {
        max-width: 100%;
    }

    .lfh-view-switcher {
        align-self: flex-end;
    }

    .lfh-view--lines .lfh-pueblo-edition-card {
        flex-wrap: wrap !important;
        padding: 8px 12px !important;
        min-height: 48px !important;
    }

    .lfh-view--lines .lfh-pueblo-edition-card__header {
        flex: 1 1 auto !important;
        width: auto !important;
        max-width: none !important;
        margin-right: 8px !important;
    }

    .lfh-view--lines .lfh-edition-card__body {
        order: 3 !important;
        flex-basis: 100% !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 4px !important;
        margin-top: 6px !important;
        margin-right: 0 !important;
    }

    .lfh-view--lines .lfh-pueblo-edition-card__title {
        white-space: normal !important;
        text-overflow: unset !important;
    }

    .lfh-view--lines .lfh-pueblo-edition-card__title a {
        white-space: normal !important;
        text-overflow: unset !important;
    }

    .lfh-view--lines .lfh-edition-card__date-meta {
        flex: none !important;
        width: 100% !important;
        max-width: none !important;
        text-align: left !important;
    }
}




/* --- MODULE: 30-items-media.css --- */
/* LFH module: Items and media. Keep module order defined by lfh.css. */
/* Item show layout: document first, supporting context second. */
body.item.resource.show #content {
    max-width: 1160px;
}

body.item.resource.show .title {
    margin-bottom: clamp(28px, 5vw, 54px);
}

body.item.resource.show .regions-container {
    align-items: start;
    gap: clamp(30px, 5vw, 68px);
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

body.item.resource.show .regions-container .main-region {
    flex: 1 1 auto;
    min-width: 0;
}

body.item.resource.show .regions-container .sidebar-region {
    width: min(30%, 330px);
    padding: clamp(22px, 3vw, 32px);
    border: 1px solid var(--lfh-border);
    border-radius: 0;
    background: var(--lfh-secondary);
    box-shadow: 0 2px 12px rgba(44, 62, 80, .04);
}

body.item.resource.show .regions-container .sidebar-region::after {
    display: none;
}

body.item.resource.show .sidebar-region .metadata > div:not(:last-child) {
    margin-bottom: 28px;
}

body.item.resource.show .sidebar-region .metadata dl {
    margin-bottom: 0;
}

body.item.resource.show .sidebar-region .metadata dt {
    margin-bottom: 9px;
    color: var(--lfh-primary);
    font-size: .75rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

body.item.resource.show .sidebar-region .metadata dd {
    margin: 0;
    color: var(--lfh-text);
    line-height: 1.55;
}

body.item.resource.show .sidebar-region .metadata a {
    color: var(--lfh-text);
    font-weight: 600;
}

body.item.resource.show .sidebar-region .metadata a:hover,
body.item.resource.show .sidebar-region .metadata a:focus {
    color: var(--lfh-primary-dark);
}

body.item.resource.show .main-region .metadata > dl {
    margin: 34px 0 0;
    padding: 10px clamp(18px, 3vw, 32px);
    border: 1px solid var(--lfh-border);
    border-radius: 0;
    background: #FFFFFF;
}

body.item.resource.show .main-region .metadata > dl > .property {
    display: grid;
    grid-template-columns: minmax(130px, 170px) minmax(0, 1fr);
    gap: 16px;
    margin: 0;
    padding: 15px 0;
    border-bottom: 1px solid rgba(44, 62, 80, .12);
}

body.item.resource.show .main-region .metadata > dl > .property:last-child {
    border-bottom: 0;
}

body.item.resource.show .main-region .metadata > dl > .property dt,
body.item.resource.show .main-region .metadata > dl > .property dd {
    width: auto;
    margin: 0;
    padding: 0;
    float: none;
}

body.item.resource.show .main-region .metadata > dl > .property dt {
    color: var(--lfh-primary);
    font-size: .8rem;
    letter-spacing: .07em;
    text-transform: uppercase;
}

body.item.resource.show .main-region .metadata > dl > .property dd {
    color: var(--lfh-text);
    line-height: 1.65;
}

body.item.resource.show .main-region .metadata > dl > .property dd a {
    color: var(--lfh-text);
}

body.item.resource.show .main-region .metadata > dl > .property dd a:hover,
body.item.resource.show .main-region .metadata > dl > .property dd a:focus {
    color: var(--lfh-primary-dark);
}

body.item.resource.show .media-embeds {
    display: grid;
    gap: 24px;
}

.lfh-media-item {
    padding: clamp(18px, 3vw, 34px);
    border: 1px solid var(--lfh-border);
    border-radius: 0;
    background: #FFFFFF;
    box-shadow: 0 2px 14px rgba(44, 62, 80, .04);
}

.lfh-media-item .media-render {
    margin-bottom: 0 !important;
    text-align: center;
}

.lfh-media-item .media-render img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: min(72vh, 720px);
    margin: 0 auto;
    object-fit: contain;
}

.lfh-media-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid rgba(44, 62, 80, .14);
}

.lfh-media-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 160px;
}

.lfh-media-action span {
    font-size: 1.15em;
    line-height: 1;
}

@media (max-width: 767px) {
    body.item.resource.show .regions-container {
        gap: 32px;
    }

    body.item.resource.show .regions-container .sidebar-region {
        width: 100%;
        padding: 22px 20px;
    }

    body.item.resource.show .main-region .metadata > dl {
        padding: 8px 18px;
    }

    body.item.resource.show .main-region .metadata > dl > .property {
        display: block;
        padding: 14px 0;
    }

    body.item.resource.show .main-region .metadata > dl > .property dt {
        margin-bottom: 5px;
    }

    .lfh-media-item {
        padding: 16px;
    }

    .lfh-media-actions {
        flex-direction: column !important;
        gap: 10px !important;
        width: 100% !important;
    }

    .lfh-media-actions .lfh-media-action {
        width: 100% !important;
        min-height: 48px !important;
        padding: 12px 16px !important;
        font-size: 0.95rem !important;
        box-sizing: border-box !important;
        justify-content: center !important;
    }
}

/* Ocultar botones de siguiente y anterior en la parte inferior de la web */
.pagination,
.previous-next-items,
.item-pagination,
.pager {
    display: none !important;
}


/* --- MODULE: 40-contact-footer.css --- */
/* LFH module: Contact, home cleanup and footer. Keep module order defined by lfh.css. */
/* Contact page: clear contact paths and remove redundant page pagination. */
.site-page-pagination {
    display: none !important;
}

/* ==========================================================================
   LFH Find the Lab / Contact Page (Exact Architectural & Editorial Layout)
   ========================================================================== */
.lfh-find-lab-page {
    max-width: 1240px;
    margin: 0 auto;
    padding: 10px 0 60px;
}

.lfh-find-lab-header {
    margin-bottom: 36px;
}

.lfh-find-lab-title {
    font-family: var(--lfh-font-heading) !important;
    font-size: clamp(2.4rem, 4.5vw, 3.4rem) !important;
    font-weight: 700 !important;
    color: var(--lfh-ink) !important;
    margin: 0 0 16px !important;
    line-height: 1.1 !important;
}

.lfh-find-lab-lead {
    font-family: var(--lfh-font-body) !important;
    font-size: clamp(1rem, 1.3vw, 1.12rem) !important;
    color: var(--lfh-text) !important;
    line-height: 1.65 !important;
    max-width: 68ch !important;
    margin: 0 !important;
}

.lfh-find-lab-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: clamp(36px, 5vw, 64px);
    align-items: start;
    margin-top: 24px;
}

.lfh-find-lab-photo-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #EAE6DF;
    border: 0.5px solid var(--lfh-editorial-line);
    border-radius: 2px;
}

.lfh-find-lab-photo {
    width: 100%;
    height: 420px;
    object-fit: cover;
    object-position: center 68%;
    display: block;
}

.lfh-find-lab-photo-chip {
    position: absolute;
    bottom: 12px;
    left: 12px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--lfh-primary);
    font-family: var(--lfh-font-ui);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 2px;
    border: 1px solid rgba(86, 66, 65, 0.15);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

.lfh-find-lab-venue {
    margin-top: 20px;
}

.lfh-find-lab-venue-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.lfh-find-lab-venue-title {
    font-family: var(--lfh-font-heading) !important;
    font-size: clamp(1.3rem, 2vw, 1.6rem) !important;
    color: var(--lfh-ink) !important;
    margin: 0 !important;
    font-weight: 700 !important;
}

.lfh-find-lab-badge {
    display: inline-flex;
    align-items: center;
    background: #EAEAEA;
    color: #4A3F35;
    font-family: var(--lfh-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 2px;
    border: 1px solid #D8D2C9;
    flex-shrink: 0;
}

.lfh-find-lab-venue-inst {
    font-family: var(--lfh-font-ui);
    font-size: 0.94rem;
    color: var(--lfh-muted);
    margin: 0 0 4px !important;
    font-weight: 500;
}

.lfh-find-lab-venue-address {
    font-family: var(--lfh-font-ui);
    font-size: 0.92rem;
    color: var(--lfh-text);
    margin: 0 !important;
}

.lfh-find-lab-section-title {
    font-family: var(--lfh-font-heading) !important;
    font-size: 1.45rem !important;
    color: var(--lfh-ink) !important;
    margin: 0 0 16px !important;
    font-weight: 600 !important;
}

.lfh-find-lab-schedule-table {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lfh-find-lab-schedule-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.lfh-find-lab-day {
    font-family: var(--lfh-font-ui);
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--lfh-muted);
}

.lfh-find-lab-hours {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    font-family: var(--lfh-font-ui);
    font-size: 0.96rem;
    font-weight: 600;
    color: var(--lfh-ink);
    text-align: right;
    gap: 2px;
}

.lfh-find-lab-closed {
    color: #8C827A;
    font-weight: 500;
}

.lfh-find-lab-divider {
    height: 0.5px;
    background: var(--lfh-editorial-line);
    margin: 14px 0;
}

.lfh-find-lab-contacts {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.lfh-find-lab-contact-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lfh-find-lab-icon {
    color: var(--lfh-primary);
    flex-shrink: 0;
}

.lfh-find-lab-link {
    font-family: var(--lfh-font-ui);
    font-size: 1.02rem;
    font-weight: 600;
    color: var(--lfh-ink);
    text-decoration: none;
    transition: color 0.15s ease;
}

.lfh-find-lab-link:hover {
    color: var(--lfh-primary);
    text-decoration: underline;
}

.lfh-find-lab-actions {
    margin-top: 32px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lfh-find-lab-btn-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #51040A;
    color: #FFFFFF !important;
    padding: 14px 20px;
    font-family: var(--lfh-font-ui);
    font-size: 0.86rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 2px;
    border: none;
    transition: background 0.2s ease;
    width: 100%;
    box-sizing: border-box;
}

.lfh-find-lab-btn-primary:hover {
    background: #701C1D;
    color: #FFFFFF !important;
}

.lfh-find-lab-btn-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.lfh-find-lab-btn-outline {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--lfh-ink) !important;
    border: 1px solid var(--lfh-border);
    padding: 12px 16px;
    font-family: var(--lfh-font-ui);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 2px;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.lfh-find-lab-btn-outline:hover {
    border-color: var(--lfh-primary);
    color: var(--lfh-primary) !important;
    background: rgba(112, 28, 29, 0.04);
}

@media (max-width: 900px) {
    .lfh-find-lab-grid {
        grid-template-columns: 1fr !important;
        gap: 36px;
    }
}

@media (max-width: 480px) {
    .lfh-find-lab-page {
        padding: 0 0 40px !important;
    }
    .lfh-find-lab-photo {
        height: 200px !important;
    }
    .lfh-find-lab-venue-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }
    .lfh-find-lab-schedule-row {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 4px !important;
    }
    .lfh-find-lab-hours {
        align-items: flex-start !important;
        text-align: left !important;
    }
    .lfh-find-lab-link {
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        font-size: 0.88rem !important;
    }
    .lfh-find-lab-btn-row {
        grid-template-columns: 1fr !important;
    }
    .lfh-find-lab-btn-primary,
    .lfh-find-lab-btn-outline {
        font-size: 0.78rem !important;
        padding: 12px 14px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
}

.lfh-editorial-steps strong {
    color: var(--lfh-primary);
    font-size: 0.78rem;
    font-weight: 700;
    flex: 0 0 auto;
    background: var(--lfh-cream);
    padding: 2px 6px;
    border-radius: 0;
    border: 1px solid var(--lfh-border);
}

/* Responsive Breakpoints */
@media (max-width: 991px) {
    .lfh-editorial-contact {
        grid-template-columns: 1fr !important;
        gap: 32px;
    }
}

@media (max-width: 767px) {
    .lfh-editorial-figure img {
        height: 240px;
    }

    .lfh-editorial-wayfinding {
        padding: 18px 16px;
    }
}

/* Page titles handling - Hidden globally as requested */
.block-pageTitle {
    display: none !important;
}

/* Footer redesign: institutional hierarchy for desktop and mobile. */
.main-footer {
    border-top: 0.5px solid var(--lfh-editorial-line);
    background: var(--lfh-surface-container);
    color: var(--lfh-text);
}

.main-footer__top {
    border-top: 3px solid var(--lfh-primary);
    background: var(--lfh-surface-container);
    padding: 52px 0 42px;
}

.main-footer__top-container {
    display: grid;
    grid-template-columns: minmax(220px, 1.05fr) minmax(180px, .8fr) minmax(260px, 1.15fr);
    gap: 42px;
    align-items: start;
    max-width: 1180px;
}

.main-footer__top-container > div {
    min-width: 0;
    margin-bottom: 0;
    position: relative;
}

.main-footer__col1,
.main-footer__col2,
.main-footer__col3 {
    max-width: none !important;
    text-align: left;
}

.main-footer__col1 img {
    display: block;
    width: min(150px, 100%);
    max-width: 150px;
    height: auto;
    margin: 0 0 22px !important;
}

.main-footer .footer_site_info p,
.main-footer__col3 p {
    margin: 0 0 12px;
    color: var(--lfh-text);
    line-height: 1.55;
}

.main-footer .footer_site_info p:last-child,
.main-footer__col3 p:last-child {
    margin-bottom: 0;
}

.main-footer .footer_site_info strong,
.main-footer__col3 strong {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--lfh-primary);
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.15rem;
    line-height: 1.2;
}

.main-footer__col2 {
    display: block;
    padding-left: 28px;
    border-left: 1px solid rgba(44, 62, 80, .18);
}

.main-footer__col2 .navigation {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: left;
}

.main-footer__col2 .navigation > li {
    max-width: none;
    margin: 0;
}

.main-footer__col2 .navigation > li > a {
    display: inline-block;
    color: var(--lfh-primary);
    font-weight: 700;
    text-decoration: none;
}

.main-footer__col2 .navigation > li > a:hover,
.main-footer__col2 .navigation > li > a:focus-visible {
    color: var(--lfh-primary-dark);
    text-decoration: underline;
}

.main-footer__col2 .navigation > li > ul {
    margin: 4px 0 0;
    padding-left: 14px;
}

.main-footer__col2 .navigation > li > ul a {
    color: var(--lfh-text);
    text-decoration: none;
}

.main-footer__col2 .navigation > li > ul a:hover,
.main-footer__col2 .navigation > li > ul a:focus-visible {
    color: var(--lfh-primary);
    text-decoration: underline;
}

.main-footer__col3 {
    padding-left: 28px;
    border-left: 1px solid rgba(44, 62, 80, .18);
}

.main-footer__col3 a {
    color: var(--lfh-primary);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.main-footer__col3 a:hover,
.main-footer__col3 a:focus-visible {
    color: var(--lfh-primary-dark);
}

.main-footer__bottom {
    border-top: 1px solid rgba(44, 62, 80, .16);
    background: var(--lfh-secondary-dark);
    padding: 20px 0;
}

.main-footer__bottom-container {
    min-height: 42px;
    gap: 18px;
    color: var(--lfh-text);
}

.main-footer__copyright {
    color: var(--lfh-text);
    font-size: .8rem;
    line-height: 1.4;
}

.main-footer__social-network {
    gap: 12px;
}

.main-footer__social-network a {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid rgba(44, 62, 80, .28);
    border-radius: 50%;
    transition: background-color .2s ease, border-color .2s ease;
}

.main-footer__social-network a:hover,
.main-footer__social-network a:focus-visible {
    border-color: var(--lfh-primary);
    background: rgba(163, 67, 45, .1);
}

.main-footer__social-network img {
    width: 16px;
    height: 16px;
}

@media (max-width: 1023px) {
    .main-footer__top-container {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 32px;
    }

    .main-footer__col1 {
        grid-column: 1 / -1;
    }

    .main-footer__col2,
    .main-footer__col3 {
        padding-left: 22px;
    }
}

@media (max-width: 767px) {
    .main-footer__top {
        padding: 38px 20px 30px;
    }

    .main-footer__top-container {
        display: grid;
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .main-footer__top-container > div {
        width: 100%;
    }

    .main-footer__col1,
    .main-footer__col2,
    .main-footer__col3 {
        grid-column: auto;
        padding: 0;
        border-left: 0;
        text-align: left;
    }

    .main-footer__col1 {
        padding-bottom: 24px;
        border-bottom: 1px solid rgba(44, 62, 80, .18);
    }

    .main-footer__col1 img {
        width: 132px;
        margin-bottom: 16px !important;
    }

    .main-footer__col2,
    .main-footer__col3 {
        padding-top: 24px;
        border-top: 1px solid rgba(44, 62, 80, .18);
    }

    .main-footer__col2 .navigation {
        gap: 9px;
    }

    .main-footer__bottom {
        padding: 18px 20px;
    }

    .main-footer__social-network {
        order: 0;
        justify-content: flex-start;
    }
}

/* ==========================================================================
   CLEAN EDITORIAL FOOTER (Matching Minimalist Design Specification)
   ========================================================================== */
footer,
.site-footer,
.lfh-footer {
    background: #292421 !important;
    color: #eee8e0 !important;
    padding: 55px 40px !important;
    border-top: none !important;
    font-family: var(--lfh-font-ui, "DM Sans", sans-serif) !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-top: auto !important;
}

.footer-container {
    max-width: 1250px !important;
    margin: auto !important;
    display: grid !important;
    grid-template-columns: 2fr 1fr 1fr !important;
    gap: 60px !important;
    box-sizing: border-box !important;
}

.footer-brand h3 {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif) !important;
    font-size: 27px !important;
    font-weight: 500 !important;
    margin-bottom: 15px !important;
    color: #ffffff !important;
    line-height: 1.2 !important;
}

.footer-brand p {
    max-width: 500px !important;
    color: #bcb4ac !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    margin: 0 !important;
}

.footer-column h4 {
    color: white !important;
    font-size: 12px !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    margin-bottom: 18px !important;
    font-weight: 700 !important;
}

.footer-column a {
    display: block !important;
    text-decoration: none !important;
    color: #bcb4ac !important;
    font-size: 14px !important;
    margin-bottom: 9px !important;
    transition: all 0.3s ease !important;
}

.footer-column a:hover {
    color: white !important;
    transform: translateX(3px) !important;
}

.footer-bottom {
    max-width: 1250px !important;
    margin: 45px auto 0 !important;
    padding-top: 25px !important;
    border-top: 1px solid #47413c !important;
    color: #938b84 !important;
    font-size: 12px !important;
    box-sizing: border-box !important;
}

@media (max-width: 950px) {
    .footer-container {
        grid-template-columns: 1fr 1fr !important;
        gap: 40px !important;
    }
}

@media (max-width: 650px) {
    footer,
    .site-footer,
    .lfh-footer {
        padding: 45px 25px !important;
    }
    .footer-container {
        grid-template-columns: 1fr !important;
        gap: 35px !important;
    }
}


/* --- MODULE: 50-services.css --- */
/* ==========================================================================
   LFH Services & Methodology: Editorial Open Architecture & Connected Timeline
   ========================================================================== */

/* 1. Editorial Services Grid (3 + 2 Layout, Unboxed) */
.lfh-services-editorial-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: clamp(28px, 4vw, 48px) 36px !important;
    margin-top: 40px !important;
    align-items: start !important;
}

.lfh-service-editorial-item {
    display: flex !important;
    flex-direction: column !important;
    padding-bottom: 28px !important;
    border-bottom: 0.5px solid var(--lfh-editorial-line) !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
}

.lfh-service-editorial-item__header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 14px !important;
}

.lfh-service-editorial-item__num {
    font-family: var(--lfh-font-heading) !important;
    font-size: 2.6rem !important;
    font-weight: 700 !important;
    color: var(--lfh-primary) !important;
    opacity: 0.3 !important;
    line-height: 1 !important;
}

.lfh-service-editorial-item__icon {
    color: var(--lfh-primary) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.lfh-service-editorial-item__icon svg {
    width: 26px !important;
    height: 26px !important;
    stroke: var(--lfh-primary) !important;
}

.lfh-service-editorial-item h3 {
    font-family: var(--lfh-font-heading) !important;
    font-size: clamp(1.2rem, 1.8vw, 1.45rem) !important;
    font-weight: 700 !important;
    color: var(--lfh-ink) !important;
    margin: 0 0 10px !important;
    line-height: 1.2 !important;
}

.lfh-service-editorial-item p {
    font-family: var(--lfh-font-body) !important;
    font-size: 0.94rem !important;
    color: var(--lfh-text) !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* 2. Connected Timeline: "Nuestro Proceso Archivístico" */
.lfh-timeline-wrapper {
    position: relative !important;
    margin: 48px auto 0 !important;
    max-width: 1140px !important;
}

.lfh-timeline-track {
    position: absolute !important;
    top: 32px !important;
    left: 8% !important;
    right: 8% !important;
    height: 1px !important;
    background: rgba(86, 66, 65, 0.25) !important;
    z-index: 1 !important;
}

.lfh-timeline-grid {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 20px !important;
    position: relative !important;
    z-index: 2 !important;
}

.lfh-timeline-step {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    padding: 0 6px !important;
}

.lfh-timeline-circle {
    width: 64px !important;
    height: 64px !important;
    border-radius: 50% !important;
    background: #FFFFFF !important;
    border: 1px solid var(--lfh-border) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-bottom: 16px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
    transition: all 0.2s ease !important;
    color: var(--lfh-primary) !important;
}

.lfh-timeline-step:hover .lfh-timeline-circle {
    border-color: var(--lfh-primary) !important;
    background: var(--lfh-primary-deep) !important;
    color: #FFFFFF !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--lfh-shadow-md) !important;
}

.lfh-timeline-circle svg {
    width: 24px !important;
    height: 24px !important;
    stroke: currentColor !important;
}

.lfh-timeline-step h4 {
    font-family: var(--lfh-font-heading) !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: var(--lfh-ink) !important;
    margin: 0 0 6px !important;
}

.lfh-timeline-step p {
    font-family: var(--lfh-font-body) !important;
    font-size: 0.88rem !important;
    color: var(--lfh-text) !important;
    line-height: 1.45 !important;
    margin: 0 !important;
}

/* Responsive adjustments */
@media (max-width: 991px) {
    .lfh-services-editorial-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 32px 24px !important;
    }
    
    .lfh-timeline-track {
        display: none !important;
    }
    
    .lfh-timeline-grid {
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
        gap: 28px 16px !important;
    }
}

@media (max-width: 767px) {
    .lfh-services-editorial-grid {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
    
    .lfh-timeline-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    
    .lfh-timeline-step {
        flex-direction: column !important;
        text-align: center !important;
        align-items: center !important;
        padding-bottom: 20px !important;
        border-bottom: 0.5px solid var(--lfh-editorial-line) !important;
    }
    
    .lfh-timeline-circle {
        margin-bottom: 12px !important;
        flex-shrink: 0 !important;
        width: 56px !important;
        height: 56px !important;
    }

    .lfh-timeline-step h4 {
        font-size: 1.15rem !important;
        margin-bottom: 4px !important;
    }

    .lfh-timeline-step p {
        font-size: 0.92rem !important;
        max-width: 280px !important;
    }
}



/* --- MODULE: 60-fondos.css --- */
/* ==========================================================================
   LFH 60-fondos.css: Fondos Documentales, Colecciones & Archivos Históricos
   Modular presentation layer for Fondos (slug: fondos), Colecciones (slug: item-set)
   and Archivo de Derechos Humanos (slug: derechoshumanoslab).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Contenedores Principales y Hero Editorial
   -------------------------------------------------------------------------- */
.lfh-fondos-hub,
.lfh-colecciones-hub {
    width: 100%;
    margin: 0 auto;
}

.lfh-fondos-hub .hero,
.lfh-colecciones-hub .hero,
.hero {
    max-width: 1250px;
    margin: 0 auto;
    padding: clamp(48px, 6vw, 85px) 40px clamp(32px, 4vw, 55px);
    box-sizing: border-box;
}

.lfh-fondos-hub .eyebrow,
.lfh-colecciones-hub .eyebrow,
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--lfh-primary, #701C1D);
    font-family: var(--lfh-font-ui, "DM Sans", sans-serif);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.lfh-fondos-hub .eyebrow::before,
.lfh-colecciones-hub .eyebrow::before,
.eyebrow::before {
    content: "";
    display: block;
    width: 32px;
    height: 2px;
    background: var(--lfh-primary, #701C1D);
}

.lfh-fondos-hub .hero h1,
.lfh-colecciones-hub .hero h1,
.hero h1 {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif);
    font-size: clamp(36px, 4.8vw, 70px);
    line-height: 1.08;
    font-weight: 500;
    letter-spacing: -1.5px;
    color: var(--lfh-ink, #1F1914);
    margin-bottom: 22px;
}

.lfh-fondos-hub .hero h1 span,
.lfh-colecciones-hub .hero h1 span,
.hero h1 span {
    color: var(--lfh-primary, #701C1D);
}

.lfh-fondos-hub .hero-description,
.lfh-colecciones-hub .hero-description,
.hero-description {
    max-width: 920px;
    font-family: var(--lfh-font-body, "Habibi", Georgia, serif);
    font-size: clamp(16px, 1.6vw, 19.5px);
    line-height: 1.7;
    color: var(--lfh-text, #4A3F35);
    margin: 0;
}

/* Filete decorativo divisor */
.lfh-fondos-hub .hero-line,
.lfh-colecciones-hub .hero-line,
.hero-line {
    max-width: 1250px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}

.lfh-fondos-hub .hero-line div,
.lfh-colecciones-hub .hero-line div,
.hero-line div {
    height: 1px;
    background: var(--lfh-editorial-line, #DED6CC);
}

/* --------------------------------------------------------------------------
   2. Sección Showcase (Introducción de Sección)
   -------------------------------------------------------------------------- */
.lfh-fondos-hub .collections,
.lfh-colecciones-hub .collections,
.collections {
    max-width: 1450px;
    margin: auto;
    padding: 50px 40px 85px;
    box-sizing: border-box;
}

.lfh-fondos-hub .collections-intro,
.lfh-colecciones-hub .collections-intro,
.collections-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 35px;
    gap: 28px;
}

.lfh-fondos-hub .collections-intro h2,
.lfh-colecciones-hub .collections-intro h2,
.collections-intro h2 {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif);
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 500;
    color: var(--lfh-ink, #1F1914);
    margin: 0;
}

.lfh-fondos-hub .collections-intro p,
.lfh-colecciones-hub .collections-intro p,
.collections-intro p {
    max-width: 480px;
    color: var(--lfh-text, #4A3F35);
    font-family: var(--lfh-font-body, "Habibi", Georgia, serif);
    font-size: 0.92rem;
    line-height: 1.6;
    margin: 0;
}

/* --------------------------------------------------------------------------
   3. Cuadrículas Responsivas (Grid)
   -------------------------------------------------------------------------- */
.lfh-fondos-hub .collections-grid,
.collections-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 28px !important;
    align-items: stretch !important;
}

.lfh-colecciones-hub .collections-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 36px !important;
    max-width: 1060px !important;
    margin: 0 auto !important;
}

/* --------------------------------------------------------------------------
   4. Tarjeta Editorial de Colección / Fondo (.collection-card)
   -------------------------------------------------------------------------- */
.lfh-fondos-hub .collection-card,
.lfh-colecciones-hub .collection-card,
.collection-card {
    position: relative !important;
    background: #FFFFFF !important;
    border: 1px solid var(--lfh-editorial-line, #DED6CC) !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 520px !important;
    overflow: hidden !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
}

.lfh-fondos-hub .collection-card:hover,
.lfh-colecciones-hub .collection-card:hover,
.collection-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 14px 35px rgba(50, 30, 20, 0.09) !important;
    border-color: #BDB2A5 !important;
}

/* Contenedor de Imagen */
.lfh-fondos-hub .card-image,
.lfh-colecciones-hub .card-image,
.card-image {
    height: 195px !important;
    position: relative !important;
    overflow: hidden !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    transition: transform 0.45s ease !important;
}

.lfh-fondos-hub .collection-card:hover .card-image,
.lfh-colecciones-hub .collection-card:hover .card-image,
.collection-card:hover .card-image {
    transform: scale(1.02) !important;
}

.lfh-fondos-hub .card-image::before,
.lfh-colecciones-hub .card-image::before,
.card-image::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(to bottom, rgba(20, 15, 10, 0.05), rgba(20, 15, 10, 0.45)) !important;
    z-index: 1 !important;
}

/* Badge Numérico */
.lfh-fondos-hub .card-number,
.lfh-colecciones-hub .card-number,
.card-number {
    position: absolute !important;
    top: 14px !important;
    left: 14px !important;
    z-index: 3 !important;
    width: 42px !important;
    height: 42px !important;
    background: var(--lfh-primary, #701C1D) !important;
    color: #FFFFFF !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: var(--lfh-font-ui, "DM Sans", sans-serif) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
}

/* Etiqueta Sobre la Imagen */
.lfh-fondos-hub .image-label,
.lfh-colecciones-hub .image-label,
.image-label {
    position: absolute !important;
    bottom: 14px !important;
    left: 18px !important;
    z-index: 3 !important;
    color: #FFFFFF !important;
    font-family: var(--lfh-font-ui, "DM Sans", sans-serif) !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5) !important;
}

/* Cuerpo de la Tarjeta */
.lfh-fondos-hub .card-content,
.lfh-colecciones-hub .card-content,
.card-content {
    padding: 24px 26px 22px !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
    box-sizing: border-box !important;
}

.lfh-fondos-hub .card-category,
.lfh-colecciones-hub .card-category,
.card-category {
    color: var(--lfh-primary, #701C1D) !important;
    font-family: var(--lfh-font-ui, "DM Sans", sans-serif) !important;
    font-size: 0.68rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    margin-bottom: 10px !important;
    display: block !important;
}

.lfh-fondos-hub .card-content h3,
.lfh-colecciones-hub .card-content h3,
.card-content h3 {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif) !important;
    font-size: 1.45rem !important;
    line-height: 1.18 !important;
    font-weight: 500 !important;
    letter-spacing: -0.3px !important;
    color: var(--lfh-ink, #1F1914) !important;
    margin: 0 0 12px !important;
}

.lfh-fondos-hub .card-content p,
.lfh-colecciones-hub .card-content p,
.card-content p {
    font-family: var(--lfh-font-body, "Habibi", Georgia, serif) !important;
    color: var(--lfh-text, #4A3F35) !important;
    font-size: 0.91rem !important;
    line-height: 1.62 !important;
    margin: 0 !important;
}

/* Pie de Tarjeta y Enlace de Acción */
.lfh-fondos-hub .card-footer,
.lfh-colecciones-hub .card-footer,
.card-footer {
    margin-top: auto !important;
    padding-top: 18px !important;
}

.lfh-fondos-hub .card-link,
.lfh-colecciones-hub .card-link,
.card-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    color: var(--lfh-primary, #701C1D) !important;
    text-decoration: none !important;
    font-family: var(--lfh-font-ui, "DM Sans", sans-serif) !important;
    font-size: 0.76rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    border-bottom: 2px solid var(--lfh-primary, #701C1D) !important;
    padding-bottom: 6px !important;
    transition: all 0.25s ease !important;
}

.lfh-fondos-hub .card-link .arrow,
.lfh-colecciones-hub .card-link .arrow,
.card-link .arrow {
    font-size: 1.1rem !important;
    line-height: 1 !important;
    transition: transform 0.22s ease !important;
}

.lfh-fondos-hub .card-link:hover,
.lfh-colecciones-hub .card-link:hover,
.card-link:hover,
.lfh-fondos-hub .collection-card:hover .card-link,
.lfh-colecciones-hub .collection-card:hover .card-link,
.collection-card:hover .card-link {
    color: var(--lfh-primary-deep, #4F1314) !important;
    border-bottom-color: var(--lfh-primary-deep, #4F1314) !important;
    gap: 16px !important;
}

.lfh-fondos-hub .card-link:hover .arrow,
.lfh-colecciones-hub .card-link:hover .arrow,
.card-link:hover .arrow,
.lfh-fondos-hub .collection-card:hover .card-link .arrow,
.lfh-colecciones-hub .collection-card:hover .card-link .arrow,
.collection-card:hover .card-link .arrow {
    transform: translateX(4px) !important;
}

/* Enlace Expandido: toda la tarjeta es clickeable */
.lfh-fondos-hub .card-link::after,
.lfh-colecciones-hub .card-link::after,
.card-link::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 10 !important;
    cursor: pointer !important;
}

/* --------------------------------------------------------------------------
   5. Franja de Estadísticas del Acervo (.stats)
   -------------------------------------------------------------------------- */
.lfh-fondos-hub .stats,
.lfh-colecciones-hub .stats,
.stats {
    max-width: 1450px !important;
    margin: 0 auto 85px !important;
    padding: 45px 40px !important;
    border-top: 1px solid var(--lfh-editorial-line, #DED6CC) !important;
    border-bottom: 1px solid var(--lfh-editorial-line, #DED6CC) !important;
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 28px !important;
    box-sizing: border-box !important;
}

.lfh-fondos-hub .stat,
.lfh-colecciones-hub .stat,
.stat {
    padding-left: 22px !important;
    border-left: 2px solid var(--lfh-primary, #701C1D) !important;
}

.lfh-fondos-hub .stat-number,
.lfh-colecciones-hub .stat-number,
.stat-number {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif) !important;
    color: var(--lfh-primary, #701C1D) !important;
    font-size: 2.5rem !important;
    line-height: 1 !important;
    margin-bottom: 6px !important;
    font-weight: 600 !important;
}

.lfh-fondos-hub .stat-label,
.lfh-colecciones-hub .stat-label,
.stat-label {
    color: var(--lfh-text, #4A3F35) !important;
    font-family: var(--lfh-font-ui, "DM Sans", sans-serif) !important;
    font-size: 0.78rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    font-weight: 600 !important;
}

/* --------------------------------------------------------------------------
   6. Estilos Complementarios para Archivo DD.HH. y Subfondos
   -------------------------------------------------------------------------- */
.lfh-ddhh-page {
    max-width: 1240px;
    margin: 0 auto;
    padding: 10px 0 0;
}

.lfh-ddhh-header {
    margin-bottom: 36px;
}

.lfh-ddhh-title {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif) !important;
    font-size: clamp(2.2rem, 4vw, 3.2rem) !important;
    line-height: 1.15 !important;
    color: var(--lfh-ink, #1F1914) !important;
    margin: 0 0 14px !important;
    font-weight: 700 !important;
}

.lfh-ddhh-title span {
    color: var(--lfh-primary, #701C1D);
    font-weight: 400;
}

.lfh-ddhh-lead {
    font-family: var(--lfh-font-body, "Habibi", Georgia, serif) !important;
    font-size: 1.05rem !important;
    color: var(--lfh-text, #4A3F35) !important;
    line-height: 1.65 !important;
    max-width: 72ch !important;
    margin: 0 !important;
}

.lfh-ddhh-project-card {
    background: #FAF8F5;
    border: 1px solid var(--lfh-editorial-line, #DED6CC);
    border-left: 4px solid var(--lfh-primary, #701C1D);
    padding: 24px 28px;
    margin-bottom: 36px;
}

.lfh-ddhh-project-card h2 {
    font-family: var(--lfh-font-heading, "Playfair Display", Georgia, serif);
    font-size: 1.35rem;
    color: var(--lfh-ink, #1F1914);
    margin: 0 0 8px;
}

.lfh-ddhh-project-card p {
    font-family: var(--lfh-font-body, "Habibi", Georgia, serif);
    color: var(--lfh-text, #4A3F35);
    font-size: 0.94rem;
    line-height: 1.6;
    margin: 0;
}

/* --------------------------------------------------------------------------
   7. Adaptación Responsiva Unificada
   -------------------------------------------------------------------------- */
@media (max-width: 950px) {
    .lfh-fondos-hub .collections-grid,
    .collections-grid {
        grid-template-columns: 1fr !important;
    }
    .lfh-fondos-hub .collection-card,
    .lfh-colecciones-hub .collection-card,
    .collection-card {
        min-height: auto !important;
    }
    .lfh-fondos-hub .card-image,
    .lfh-colecciones-hub .card-image,
    .card-image {
        height: 220px !important;
    }
    .lfh-fondos-hub .stats,
    .lfh-colecciones-hub .stats,
    .stats {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 650px) {
    .lfh-fondos-hub .hero,
    .lfh-colecciones-hub .hero,
    .hero {
        padding: 40px 20px 32px !important;
    }
    .lfh-fondos-hub .hero h1,
    .lfh-colecciones-hub .hero h1,
    .hero h1 {
        font-size: 2.2rem !important;
        letter-spacing: -1px !important;
    }
    .lfh-fondos-hub .hero-line,
    .lfh-colecciones-hub .hero-line,
    .hero-line {
        padding: 0 20px !important;
    }
    .lfh-fondos-hub .collections,
    .lfh-colecciones-hub .collections,
    .collections {
        padding: 30px 20px 45px !important;
    }
    .lfh-fondos-hub .collections-intro,
    .lfh-colecciones-hub .collections-intro,
    .collections-intro {
        display: block !important;
        margin-bottom: 22px !important;
    }
    .lfh-fondos-hub .collections-intro h2,
    .lfh-colecciones-hub .collections-intro h2,
    .collections-intro h2 {
        font-size: 1.6rem !important;
        margin-bottom: 8px !important;
    }
    .lfh-fondos-hub .card-content,
    .lfh-colecciones-hub .card-content,
    .card-content {
        padding: 20px 18px !important;
    }
    .lfh-fondos-hub .stats,
    .lfh-colecciones-hub .stats,
    .stats {
        margin: 0 20px 45px !important;
        padding: 25px 0 !important;
        grid-template-columns: 1fr 1fr !important;
    }
    .lfh-fondos-hub .stat-number,
    .lfh-colecciones-hub .stat-number,
    .stat-number {
        font-size: 2rem !important;
    }
}

@media (max-width: 420px) {
    .lfh-fondos-hub .stats,
    .lfh-colecciones-hub .stats,
    .stats {
        margin: 0 10px 35px !important;
        padding: 20px 0 !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }
    .stat {
        padding-left: 16px !important;
    }
    .lfh-fondos-hub .stat-number,
    .lfh-colecciones-hub .stat-number,
    .stat-number {
        font-size: 1.85rem !important;
    }
    .lfh-fondos-hub .stat-label,
    .lfh-colecciones-hub .stat-label,
    .stat-label {
        font-size: 0.74rem !important;
        letter-spacing: 0.04em !important;
        line-height: 1.35 !important;
    }
}


/* --- MODULE: 70-presentacion.css --- */
/* ==========================================================================
   LFH-UTP: Módulo de Presentación Editorial (70-presentacion.css)
   Organización arquitectónica inspirada en maquetación institucional académica.
   Utiliza tokens de 00-tokens-base.css y directrices de README-LFH.md.
   ========================================================================== */

/* Contenedor principal de la página */
.lfh-pres-wrapper {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 0 var(--space-section);
    box-sizing: border-box;
    color: var(--lfh-ink);
}

/* Secciones genéricas con espaciado uniforme */
.lfh-pres-section {
    margin-bottom: clamp(60px, 8vw, 120px);
    position: relative;
}

/* Antetítulo / Eyebrow con línea de acento */
.lfh-pres-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--lfh-font-ui);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--lfh-muted);
    margin-bottom: 20px;
}

.lfh-pres-eyebrow__line {
    display: inline-block;
    width: 32px;
    height: 1px;
    background-color: var(--lfh-border);
}

/* --------------------------------------------------------------------------
   1. HERO SECTION (Split asimétrico 5/7)
   -------------------------------------------------------------------------- */
.lfh-pres-hero {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: clamp(24px, 4vw, 48px);
    align-items: end;
    margin-bottom: clamp(60px, 8vw, 120px);
}

.lfh-pres-hero__text {
    padding-bottom: 16px;
}

.lfh-pres-hero__title {
    font-family: var(--lfh-font-heading);
    font-size: clamp(2.6rem, 4.8vw, 4.2rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.02em;
    color: var(--lfh-ink);
    margin: 0 0 24px;
}

.lfh-pres-hero__lead {
    font-family: var(--lfh-font-body);
    font-size: clamp(1.05rem, 1.25vw, 1.2rem);
    line-height: 1.65;
    color: var(--lfh-text);
    max-width: 480px;
    margin: 0;
}

.lfh-pres-hero__media {
    height: clamp(340px, 38vw, 560px);
    min-height: 320px;
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--lfh-border);
    background: var(--lfh-surface-container);
}

.lfh-pres-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(15%) sepia(8%);
    transition: filter 0.5s ease;
}

.lfh-pres-hero__media:hover .lfh-pres-hero__img {
    filter: grayscale(0%) sepia(0%);
}

/* --------------------------------------------------------------------------
   2. EDITORIAL SPLIT (Misión 4 / Separador 1 / Trayectoria 7)
   -------------------------------------------------------------------------- */
.lfh-pres-editorial {
    display: grid;
    grid-template-columns: 4.5fr 0.5fr 7fr;
    gap: clamp(20px, 3vw, 40px);
    margin-bottom: clamp(60px, 8vw, 120px);
}

.lfh-pres-editorial__col-left {
    border-top: 1px solid var(--lfh-border);
    padding-top: 32px;
}

.lfh-pres-editorial__col-right {
    border-top: 1px solid var(--lfh-border);
    padding-top: 32px;
}

.lfh-pres-section-title {
    font-family: var(--lfh-font-heading);
    font-size: clamp(1.65rem, 2.3vw, 2.1rem);
    font-weight: 600;
    color: var(--lfh-ink);
    margin: 0 0 20px;
    line-height: 1.2;
}

.lfh-pres-editorial__desc {
    font-family: var(--lfh-font-body);
    font-size: 1rem;
    line-height: 1.65;
    color: var(--lfh-text);
    margin-bottom: 28px;
}

/* Tarjeta de Cita Institucional */
.lfh-pres-quote {
    border: 1px solid rgba(137, 114, 112, 0.28);
    background: var(--lfh-surface-low);
    padding: 24px;
    border-radius: var(--lfh-radius-sm);
}

.lfh-pres-quote__icon {
    font-family: 'Material Symbols Outlined', sans-serif;
    font-size: 2rem;
    color: var(--lfh-primary);
    line-height: 1;
    margin-bottom: 12px;
    display: block;
}

.lfh-pres-quote__text {
    font-family: var(--lfh-font-body);
    font-size: 0.98rem;
    font-style: italic;
    line-height: 1.65;
    color: var(--lfh-text);
    margin: 0;
}

.lfh-pres-quote__author {
    margin-top: 16px;
    font-family: var(--lfh-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--lfh-ink);
}

/* Columna de Trayectoria */
.lfh-pres-editorial__story {
    margin-bottom: 32px;
}

.lfh-pres-editorial__story-lead {
    font-family: var(--lfh-font-heading);
    font-size: 1.18rem;
    line-height: 1.55;
    color: var(--lfh-ink);
    margin-bottom: 20px;
}

.lfh-pres-editorial__story-columns {
    font-family: var(--lfh-font-body);
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--lfh-text);
    columns: 2;
    column-gap: 36px;
}

.lfh-pres-editorial__story-columns p {
    margin-bottom: 16px;
}

/* Fotografía testimonial y pie editorial */
.lfh-pres-story-media {
    margin: 24px 0 0;
    border: 1px solid var(--lfh-border);
    background: var(--lfh-surface-container);
    overflow: hidden;
}

.lfh-pres-story-img {
    width: 100%;
    height: auto;
    max-height: 270px;
    object-fit: cover;
    display: block;
    filter: grayscale(12%) sepia(6%);
    transition: filter 0.4s ease;
}

.lfh-pres-story-media:hover .lfh-pres-story-img {
    filter: grayscale(0%) sepia(0%);
}

.lfh-pres-story-caption {
    padding: 10px 14px;
    font-family: var(--lfh-font-ui);
    font-size: 0.74rem;
    color: var(--lfh-muted);
    line-height: 1.45;
    background: #FFFFFF;
    border-top: 1px solid var(--lfh-border);
    font-style: italic;
}

/* Rejilla de Métricas Reales */
.lfh-pres-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid var(--lfh-border);
}

.lfh-pres-metric__num {
    font-family: var(--lfh-font-heading);
    font-size: clamp(2.2rem, 3.2vw, 3rem);
    font-weight: 700;
    color: var(--lfh-primary);
    line-height: 1.05;
    margin-bottom: 6px;
}

.lfh-pres-metric__label {
    font-family: var(--lfh-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--lfh-muted);
    line-height: 1.35;
}

/* --------------------------------------------------------------------------
   3. TRES PILARES (Ejes de Acción)
   -------------------------------------------------------------------------- */
.lfh-pres-pillars-header {
    border-top: 1px solid var(--lfh-border);
    padding-top: 32px;
    margin-bottom: 40px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.lfh-pres-pillars-counter {
    font-family: var(--lfh-font-ui);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--lfh-muted);
}

.lfh-pres-pillars-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--lfh-border);
    border-bottom: 1px solid var(--lfh-border);
}

.lfh-pres-pillar {
    position: relative;
    padding: 36px 32px;
    border-right: 1px solid var(--lfh-border);
    transition: background-color 0.4s ease;
    box-sizing: border-box;
}

.lfh-pres-pillar:last-child {
    border-right: none;
}

.lfh-pres-pillar:hover {
    background-color: var(--lfh-surface-low);
}

/* Microinteracción: barra superior animada al hover */
.lfh-pres-pillar__bar {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--lfh-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

.lfh-pres-pillar:hover .lfh-pres-pillar__bar {
    transform: scaleX(1);
}

.lfh-pres-pillar__num {
    font-family: var(--lfh-font-ui);
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--lfh-muted);
    opacity: 0.45;
    margin-bottom: 28px;
    letter-spacing: 0.05em;
}

.lfh-pres-pillar__icon {
    font-family: 'Material Symbols Outlined', sans-serif;
    font-size: 2.6rem;
    color: var(--lfh-primary);
    font-weight: 300;
    line-height: 1;
    margin-bottom: 20px;
    display: block;
}

.lfh-pres-pillar__title {
    font-family: var(--lfh-font-heading);
    font-size: 1.45rem;
    font-weight: 600;
    color: var(--lfh-ink);
    margin: 0 0 14px;
    line-height: 1.2;
}

.lfh-pres-pillar__desc {
    font-family: var(--lfh-font-body);
    font-size: 0.94rem;
    line-height: 1.65;
    color: var(--lfh-text);
    margin: 0;
}

/* --------------------------------------------------------------------------
   4. TARJETAS DE ACCIÓN DUAL (Bottom CTAs)
   -------------------------------------------------------------------------- */
.lfh-pres-ctas {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(20px, 3vw, 36px);
    border-top: 1px solid var(--lfh-border);
    padding-top: 48px;
}

.lfh-pres-cta-card {
    position: relative;
    overflow: hidden;
    height: 280px;
    border: 1px solid var(--lfh-border);
    background: var(--lfh-surface-low);
    padding: 36px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-decoration: none !important;
    transition: border-color 0.35s ease, transform 0.35s ease;
    box-sizing: border-box;
}

.lfh-pres-cta-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(112, 28, 29, 0.04);
    opacity: 0;
    transition: opacity 0.35s ease;
    pointer-events: none;
}

.lfh-pres-cta-card:hover {
    border-color: rgba(112, 28, 29, 0.5);
    transform: translateY(-2px);
}

.lfh-pres-cta-card:hover::after {
    opacity: 1;
}

.lfh-pres-cta-card__eyebrow {
    position: relative;
    z-index: 2;
    font-family: var(--lfh-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--lfh-muted);
}

.lfh-pres-cta-card__bottom {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
}

.lfh-pres-cta-card__title {
    font-family: var(--lfh-font-heading);
    font-size: clamp(1.4rem, 2vw, 1.85rem);
    font-weight: 600;
    color: var(--lfh-ink);
    margin: 0;
    line-height: 1.2;
    transition: color 0.35s ease;
}

.lfh-pres-cta-card:hover .lfh-pres-cta-card__title {
    color: var(--lfh-primary);
}

.lfh-pres-cta-card__icon {
    font-family: 'Material Symbols Outlined', sans-serif;
    font-size: 2rem;
    color: var(--lfh-muted);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), color 0.35s ease;
}

.lfh-pres-cta-card:hover .lfh-pres-cta-card__icon {
    transform: translateX(6px);
    color: var(--lfh-primary);
}

/* --------------------------------------------------------------------------
   5. RESPONSIVE BREAKPOINTS (Directriz MIGRACION_LFH_CHECKLIST)
   -------------------------------------------------------------------------- */
@media screen and (max-width: 992px) {
    .lfh-pres-hero {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .lfh-pres-hero__media {
        height: 380px;
    }

    .lfh-pres-editorial {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .lfh-pres-editorial__story-columns {
        columns: 1;
    }

    .lfh-pres-pillars-grid {
        grid-template-columns: 1fr;
    }

    .lfh-pres-pillar {
        border-right: none;
        border-bottom: 1px solid var(--lfh-border);
        padding: 32px 24px;
    }

    .lfh-pres-pillar:last-child {
        border-bottom: none;
    }

    .lfh-pres-ctas {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .lfh-pres-cta-card {
        height: 220px;
        padding: 28px;
    }
}

@media screen and (max-width: 640px) {
    .lfh-pres-hero__title {
        font-size: 2.2rem;
    }

    .lfh-pres-hero__media {
        height: 280px;
    }

    .lfh-pres-metrics {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .lfh-pres-cta-card {
        height: 190px;
        padding: 24px;
    }
}


