/* BUILT4LIFE LAB - ARCHITECTURAL BLUEPRINT WITH NEW BRANDING */
/* /assets/css/styles.css */

@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;600;700;900&display=swap');

/* CSS Variables for Brand Colors */
:root {
    --color-primary-green: #50C878;
    --color-primary-purple: #9370DB;
    --color-primary-black: #000000;
    --color-dark: #2D3436;
    --color-light: #F8F9FA;
    --color-white: #FFFFFF;
    --color-gray-light: #E9ECEF;
    --color-gray-lighter: #F1F3F4;
    --color-mod-a: #9370DB; /* Purple - Performance */
    --color-mod-b: #50C878; /* Green - Bio-Materials */
    --color-mod-c: #000000; /* Black - New Module */
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--color-white);
    color: var(--color-dark);
    line-height: 1.5;
    font-weight: 400;
    font-size: 17px;
    position: relative;
    overflow-x: hidden;
}

.container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 20px 40px 40px 40px;
    position: relative;
}

/* NAVEGACIÓN */
.nav {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    margin-bottom: 20px;
    padding: 16px 0;
    position: relative;
}

/* Línea infinita debajo del nav - ELIMINADA */
/* .nav::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 1px;
    background-color: var(--color-dark);
} */

.logo {
    display: flex;
    align-items: center;
}

.logo img {
    height: 40px;
    width: auto;
}

.logo svg {
    height: 40px;
    width: auto;
    color: var(--color-primary-black);
}

/* Old logo styles - DEPRECATED */
.logo-icon {
    display: none;
}

.logo-text {
    display: none;
}

.logo-main {
    display: none;
    font-weight: 900;
    color: #2D3436;
    letter-spacing: -0.01em;
    line-height: 0.9;
    font-family: 'Source Sans Pro', sans-serif;
}

.logo-lab {
    font-size: 1.1rem;
    font-weight: 600;
    color: #636E72;
    letter-spacing: 0.02em;
    line-height: 0.9;
    margin-top: 2px;
}

.logo-sub {
    grid-column: 1 / 3;
    font-size: 0.7rem;
    font-weight: 500;
    color: #95A5A6;
    text-transform: none;
    letter-spacing: 0.1em;
    margin-top: 8px;
    font-family: 'Source Sans Pro', sans-serif;
}

.nav-items {
    display: grid;
    grid-template-columns: repeat(5, auto);
    gap: 20px;
    padding: 0;
    justify-self: end;
}

.nav-item {
    font-weight: 700;
    font-size: 0.95rem;
    color: #2D3436 !important;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    padding: 8px 6px;
    text-align: center;
    /* text-transform removed for lowercase */
    letter-spacing: 0.04em;
    font-family: 'Source Sans Pro', sans-serif;
    position: relative;
}

.nav-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 0;
    background: var(--color-dark);
    transition: all 0.3s ease;
}

.nav-item:hover::before,
.nav-item.active::before {
    height: 70%;
}

.nav-item:hover,
.nav-item.active {
    color: #2D3436 !important;
    transform: translateX(8px);
}

/* Force nav item colors with high specificity */
.nav a.nav-item,
.nav a.nav-item:link,
.nav a.nav-item:visited {
    color: #2D3436 !important;
}

.nav a.nav-item:hover,
.nav a.nav-item.active {
    color: #2D3436 !important;
}

/* GLOBAL LINK HOVER EFFECT */
a {
    position: relative;
    transition: all 0.3s ease;
    display: inline-block;
}

a::before {
    content: '';
    position: absolute;
    left: -12px;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 0;
    background: var(--color-dark);
    transition: all 0.3s ease;
    opacity: 0;
}

a:hover::before {
    height: 70%;
    opacity: 1;
}

a:hover {
    transform: translateX(8px);
}

/* Inline links inside rich content: reset decorative styles */
.content-text a {
    display: inline !important;
    color: #2D3436 !important;
    text-decoration: underline !important;
    margin-left: 0 !important;
}

.content-text a::before {
    display: none !important;
}

.content-text a:hover {
    transform: none !important;
    color: #8B5CF6 !important;
}

/* Ensure inline links have proper spacing */
p a,
.content-card a,
.publication-meta a,
.pub-tag a {
    margin-left: 8px;
}

/* Exception only for logo */
.logo,
.logo::before {
    transform: none !important;
}

.logo::before {
    display: none !important;
}

/* HAMBURGER MENU */
.nav-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    position: relative;
    z-index: 1001;
}

.nav-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--color-dark);
    margin: 5px 0;
    transition: all 0.3s ease;
}

.nav-toggle.active span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.nav-toggle.active span:nth-child(2) {
    opacity: 0;
}

.nav-toggle.active span:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -6px);
}

/* MOBILE NAVIGATION */
@media (max-width: 768px) {
    .nav-toggle {
        display: block;
    }
    
    .nav-items {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: var(--color-white);
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 30px;
        z-index: 1000;
        padding: 40px;
    }
    
    .nav-items.active {
        display: flex;
    }
    
    .nav-item {
        font-size: 1.2rem;
        padding: 10px 20px;
        width: 100%;
        text-align: center;
        color: #2D3436 !important;
    }
    
    .nav-item::before {
        display: none; /* Hide left line on mobile */
    }
    
    .nav-item:hover,
    .nav-item.active {
        transform: none; /* No horizontal movement on mobile */
        background-color: rgba(0, 0, 0, 0.05);
        border-radius: 4px;
        color: #2D3436 !important;
    }
}

/* SISTEMA DE LÍNEAS - MODULAR */
.line-indicator {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-right: 8px;
}

.line-morada { background: var(--color-primary-purple); }
.line-verde { background: var(--color-primary-green); }
.line-negra { background: var(--color-primary-black); }
.line-both { 
    background: linear-gradient(45deg, var(--color-primary-purple) 50%, var(--color-primary-green) 50%);
}

/* Módulos con estilo constructivo - REMOVED BORDER LEFT */
.content-card.morada {
    border-left: none;
}

.content-card.verde {
    border-left: none;
}

.content-card.both {
    border-left: none;
}

.content-card.negra {
    border-left: none;
}

/* HOME HERO SECTION - REDESIGNED V4 */
.hero {
    width: 100% !important;
    /* Vertical balance: the text block (lab-description) needs the SAME amount
       of breathing room above and below, where "below" is everything between
       the text and the next visible block (research-lines). With the current
       structure that "below" is .lab-description margin-bottom (40px) +
       .hero-divider top/bottom margin (40px each) = 80px.
       Therefore the air above the text must also be 80px. */
    margin-top: 80px !important;
    margin-bottom: 50px !important;
    padding-bottom: 0px !important;
    border-bottom: none !important;
    position: relative;
    isolation: isolate; /* keep the ::before below content but above body */
}

/* Decorative network pattern behind the hero area (20% opacity) */
.hero::before {
    content: '';
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    width: min(100%, 1100px);
    aspect-ratio: 4 / 3;
    background-image: url('../images/background-network.png');
    background-repeat: no-repeat;
    background-position: center top;
    background-size: contain;
    opacity: 0.2;
    pointer-events: none;
    z-index: -1;
}

@media (max-width: 768px) {
    .hero::before {
        width: 120%;
        top: -20px;
        opacity: 0.15;
    }
}

.hero h1 {
    font-size: 4.2rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    margin-bottom: 35px !important;
    color: #2D3436 !important;
    letter-spacing: -0.02em !important;
    font-family: 'Source Sans Pro', sans-serif !important;
    text-align: center !important;
}

/* RESEARCH LINES - SIDE BY SIDE WITH MORE SPACING */
.hero .research-lines {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 200px !important;
    margin-bottom: 50px !important;
    padding: 0 !important;
}

.hero .research-line {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 500px !important;
    text-align: center !important;
}

.hero .line-header {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 8px !important;
    padding-bottom: 6px !important;
    border-bottom: 1px solid transparent !important;
}

.hero .research-line.green .line-header {
    border-bottom-color: var(--color-primary-green) !important;
}

.hero .research-line.purple .line-header {
    border-bottom-color: var(--color-primary-purple) !important;
}

.hero .line-indicator-hero {
    width: 16px !important;
    height: 16px !important;
    border-radius: 50% !important;
    flex-shrink: 0 !important;
}

.hero .line-indicator-hero.green {
    background-color: #50C878 !important;
}

.hero .line-indicator-hero.purple {
    background-color: #9370DB !important;
}

.hero .line-title-hero {
    font-size: 1.45rem !important;
    font-weight: 700 !important;
    color: #000000 !important;
    margin: 0 !important;
    letter-spacing: 0 !important;
}

.hero .line-description-hero {
    font-size: 1.2rem !important;
    line-height: 1.7 !important;
    color: #000000 !important;
    margin: 0 !important;
    padding: 0 10px !important;
    font-weight: 700 !important;
    text-align: center !important;
    white-space: normal !important;
}

/* LAB DESCRIPTION - FULL WIDTH WITH TIGHTER SPACING */
.lab-description {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    /* 40px here + 40px from .hero-divider margin = 80px total to research-lines,
       which matches the 80px margin-top of .hero (see comment there). */
    margin-bottom: 40px !important;
    padding: 0 !important;
}

.lab-description p {
    font-size: 1.75rem !important;
    line-height: 1.45 !important;
    color: #000000 !important;
    margin: 0 !important;
    text-align: center !important;
    font-weight: 400 !important;
}

.lab-description .lab-description-claim {
    margin-top: 0 !important;
    font-size: 2rem !important;   /* subtle emphasis on the closing line */
}

.lab-description strong {
    font-weight: 700 !important;
}

/* Thin black divider between lab-description and research-lines */
.hero-divider {
    border: 0;
    border-top: 1px solid #000;
    width: 100%;
    max-width: 900px;
    margin: 40px auto;
}

/* SECTION LABEL (e.g. "latest news" heading above news grid) */
.section-separator {
    width: 100%;
    margin: 80px 0 24px;
}

.section-separator .section-label {
    font-size: 1.5rem;
    font-weight: 700;
    color: #000;
    letter-spacing: 0.01em;
    line-height: 1;
}

@media (max-width: 768px) {
    .section-separator {
        margin: 50px 0 30px;
        gap: 16px;
    }

    .section-separator .section-label {
        font-size: 1.25rem;
    }
}

/* DOT SEPARATOR - INLINE */
.dot-separator {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 10px !important;
    gap: 5px !important;
    vertical-align: middle !important;
}

.dot {
    width: 9px !important;
    height: 9px !important;
    border-radius: 50% !important;
    display: inline-block !important;
}

.dot.green {
    background-color: #50C878 !important;
}

.dot.purple {
    background-color: #9370DB !important;
}

.dot.black {
    background-color: #000000 !important;
}

/* MOBILE RESPONSIVE */
@media (max-width: 900px) {
    .hero .research-lines {
        flex-direction: column !important;
        gap: 30px !important;
        align-items: center !important;
    }
    
    .hero .research-line {
        width: 100% !important;
        max-width: 500px !important;
    }
    
    .hero .lab-description {
        padding: 0 20px !important;
    }
}

/* Grid blueprint style */
.content-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    margin-bottom: 80px;
    position: relative;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    align-items: start;
}


.content-stack {
    display: grid;
    grid-template-rows: repeat(auto-fill, 1fr);
    gap: 60px;
}

.content-card {
    padding: 0;
    position: relative;
    border: none;
    background: transparent;
    margin: 0;
}

.content-card:hover {
    transform: none;
}

.content-image {
    width: 100%;
    height: 200px;
    background: #F1F3F4;
    border-radius: 0;
    margin-bottom: 0;
    background-size: cover;
    background-position: center;
    border: none;
    position: relative;
}

/* Card Line Wrapper - REDESIGNED V2 */
.card-line-wrapper {
    position: relative;
}

.card-line-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: -30px;
    right: 0;
    height: 3px;
    background-color: #E9ECEF;
    z-index: 2;
}

.content-card.verde .card-line-wrapper::before {
    background-color: var(--color-primary-green);
}

.content-card.morada .card-line-wrapper::before {
    background-color: var(--color-primary-purple);
}

.content-card.both .card-line-wrapper::before {
    background-color: #000000;
}

.card-line-dot {
    position: absolute;
    left: -8px;
    top: -8px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    z-index: 4;
}

.card-line-dot.line-verde {
    background-color: var(--color-primary-green);
}

.card-line-dot.line-morada {
    background-color: var(--color-primary-purple);
}

.card-line-dot.line-both {
    display: flex;
    align-items: center;
    gap: 2px;
    width: auto;
    height: 16px;
    background: none;
    left: -8px;
}

.card-line-dot.line-both::before {
    content: '';
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--color-primary-green);
}

.card-line-dot.line-both::after {
    content: '';
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: #000000;
}

.card-line-dot.line-both .middle-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--color-primary-purple);
}

/* Content card inner structure */
.content-card-inner {
    padding: 0;
}

.content-meta {
    display: flex;
    align-items: center;
    margin: 20px 0 12px 0;
    gap: 16px;
}

.content-coordinates {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.85rem;
    color: #636E72;
    font-weight: 400;
}

.content-date {
    font-size: 0.85rem;
    color: #636E72;
    font-weight: 400;
    font-family: 'Source Sans Pro', sans-serif;
}

.content-title {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 12px;
    color: #2D3436;
    line-height: 1.3;
    letter-spacing: 0;
}

.content-excerpt {
    color: #636E72;
    line-height: 1.6;
    margin-bottom: 20px;
    font-weight: 400;
    font-size: 1.05rem;
}

.read-more {
    font-weight: 600;
    color: var(--color-primary-black);
    font-size: 1rem;
    letter-spacing: 0;
    cursor: pointer;
    font-family: 'Source Sans Pro', sans-serif;
    text-decoration: none;
    display: inline-block;
    position: relative;
}

.read-more:hover {
    text-decoration: none;
}

/* PROYECTOS */
.projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 50px;
    position: relative;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}


.project-card {
    position: relative;
    border: none;
    background: transparent;
    margin: 0;
    margin-bottom: 60px;
}

.project-card:hover {
    transform: none;
}

.project-image {
    width: 100%;
    height: 200px;
    background: #F1F3F4;
    background-size: cover;
    background-position: center;
    border: none;
    position: relative;
}

/* Project card line wrapper */
.project-card .card-line-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: -30px;
    right: 0;
    height: 3px;
    background-color: #E9ECEF;
    z-index: 2;
}

.project-card.verde .card-line-wrapper::before {
    background-color: var(--color-primary-green);
}

.project-card.morada .card-line-wrapper::before {
    background-color: var(--color-primary-purple);
}

.project-card.both .card-line-wrapper::before {
    background-color: #000000;
}

.project-content-inner {
    padding: 0;
}

.project-meta {
    margin: 20px 0 12px 0;
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.85rem;
    color: #636E72;
    font-weight: 400;
}

.project-meta > span + span::before {
    content: '·';
    margin: 0 6px;
    color: #636E72;
}

.project-coordinates {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.85rem;
    color: #636E72;
    font-weight: 400;
}

.project-title {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 12px;
    color: #2D3436;
    line-height: 1.3;
    letter-spacing: 0;
}

.project-description {
    color: #636E72;
    line-height: 1.6;
    margin-bottom: 20px;
    font-weight: 400;
    font-size: 1.05rem;
}

.ver-mas {
    display: inline-block;
    color: var(--color-primary-black);
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    font-family: 'Source Sans Pro', sans-serif;
    text-transform: none;
    position: relative;
    padding-bottom: 2px;
}

.ver-mas::after {
    display: none;
}

.ver-mas:hover {
    color: var(--color-primary-black);
    opacity: 0.8;
}

/* MIEMBROS */
.members-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 32px;
    position: relative;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

/* NEW MEMBERS GRID V2 - Two Column Layout */
.members-grid-v2 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 50px;
    position: relative;
    padding: 0;
    background: transparent;
    margin-top: 40px;
}

.member-card-v2 {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 20px;
    position: relative;
    background: transparent;
    border: none;
    transition: all 0.3s ease;
    align-items: start;
    padding-top: 20px;
}

/* Vertical line attached to photo - always visible */
.member-card-v2 .member-photo-column::before {
    content: '';
    position: absolute;
    left: -1px;
    top: -8px;
    bottom: 0;
    width: 3px;
    height: auto;
    background-color: #000000;
    z-index: 1;
    opacity: 1;
    transform: none;
    transition: top 0.3s ease;
}

.member-card-v2:hover .member-photo-column::before {
    top: -24px;
}

.member-card-v2.verde .member-photo-column::before {
    background-color: var(--color-primary-green);
}

.member-card-v2.morada .member-photo-column::before {
    background-color: var(--color-primary-purple);
}

.member-card-v2.both .member-photo-column::before {
    background-color: #000000;
}

/* Photo column - override global a styles */
.member-photo-column {
    position: relative;
    overflow: visible;
    display: block;
}

.member-photo-column:hover {
    transform: none;
}

/* Color dot indicator */
.member-photo-column::after {
    content: '';
    position: absolute;
    left: -8px;
    top: -8px;
    width: 16px;
    height: 16px;
    background-color: #000000;
    border-radius: 50%;
    z-index: 2;
}

.member-card-v2.verde .member-photo-column::after {
    background-color: var(--color-primary-green);
}

.member-card-v2.morada .member-photo-column::after {
    background-color: var(--color-primary-purple);
}

.member-photo-v2 {
    width: 120px;
    height: 180px;
    background-size: cover;
    background-position: center top;
    background-color: #F8F9FA;
    border-radius: 0;
    position: relative;
    overflow: visible;
    border: none;
}


/* Info column */
.member-info-column {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 0;
}

.member-meta-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.member-card-v2 .line-indicator {
    display: none;
}

.member-card-v2 .member-type-badge-text {
    display: inline-block;
    padding: 0;
    background: transparent;
    color: #000000;
    border-radius: 0;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0.02em;
    font-family: 'Source Sans Pro', sans-serif;
}

.member-card-v2 .member-name {
    font-size: 1.1rem;
    font-weight: 900;
    margin: 8px 0 4px 0;
    color: #000000;
    letter-spacing: -0.01em;
    line-height: 1.2;
    font-family: 'Source Sans Pro', sans-serif;
}

.member-card-v2 .member-position {
    color: #2D3436;
    font-weight: 500;
    font-size: 0.85rem;
    font-family: 'Source Sans Pro', sans-serif;
    margin: 0;
    line-height: 1.3;
}

.member-card-v2 .member-specialty {
    color: #636E72;
    font-weight: 400;
    font-size: 0.75rem;
    line-height: 1.4;
    font-style: italic;
    margin: 8px 0;
    max-width: 600px;
}

.member-card-v2 .profile-btn {
    display: inline-block;
    color: #000000;
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    font-family: 'Source Sans Pro', sans-serif;
    text-transform: none;
    position: relative;
    padding: 0;
    margin-top: 4px;
    align-self: flex-start;
}

.member-card-v2 .profile-btn:hover {
    /* No visual changes on hover */
}

/* Hover effect for member cards */
.member-card-v2:hover {
    transform: translateX(4px);
}

/* Three-dot indicator for both category */
.member-card-v2.both .member-photo-column::after {
    content: none;
}

.member-card-v2.both .member-photo-column .three-dots {
    position: absolute;
    left: -8px;
    top: -8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    z-index: 2;
}

.member-card-v2.both .member-photo-column .three-dots span {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: block;
}

.member-card-v2.both .member-photo-column .three-dots .dot-green {
    background-color: var(--color-primary-green);
}

.member-card-v2.both .member-photo-column .three-dots .dot-purple {
    background-color: var(--color-primary-purple);
}

.member-card-v2.both .member-photo-column .three-dots .dot-black {
    background-color: #000000;
}

/* Responsive design for member cards v2 */
@media (max-width: 1200px) {
    .members-grid-v2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .members-grid-v2 {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .member-card-v2 {
        grid-template-columns: 100px 1fr;
        gap: 16px;
        padding-left: 16px;
    }
    
    .member-photo-v2 {
        width: 100px;
        height: 150px;
    }
    
    .member-card-v2 .member-name {
        font-size: 1.1rem;
    }
    
    .member-card-v2:hover {
        transform: none;
    }
}


.member-card {
    text-align: center;
    padding: 32px;
    transition: all 0.4s ease;
    position: relative;
    border: none;
    border-left: 4px solid #E9ECEF;
    border-radius: 0;
    margin-bottom: 32px;
    background: #fff;
    box-shadow: none;
}

.member-card:hover {
    transform: translateX(8px);
    box-shadow: none;
    border-left-color: #DDD;
}

.member-card.morada {
    border-left-color: var(--color-primary-purple);
}

.member-card.verde {
    border-left-color: var(--color-primary-green);
}

.member-card.both {
    border-left: 4px solid transparent;
    background-image: linear-gradient(#fff, #fff),
                      linear-gradient(180deg, var(--color-primary-green) 0%, var(--color-primary-purple) 100%);
    background-origin: padding-box, border-box;
    background-clip: padding-box, border-box;
    background-position: center, left;
    background-size: 100%, 4px 100%;
    background-repeat: no-repeat;
}

.member-photo {
    width: 80px;
    height: 80px;
    border-radius: 2px;
    background: #F1F3F4;
    margin: 0 auto 20px;
    background-size: cover;
    background-position: center;
    border: 2px solid #E9ECEF;
}

.member-name {
    font-size: 1.2rem;
    font-weight: 800;
    margin-bottom: 6px;
    color: #2D3436;
    letter-spacing: -0.01em;
}

.member-position {
    color: #636E72;
    font-weight: 500;
    margin-bottom: 16px;
    font-size: 0.9rem;
    font-family: 'Source Sans Pro', sans-serif;
}

.member-specialty {
    color: var(--color-primary-purple);
    font-weight: 500;
    margin-bottom: 16px;
    font-size: 0.85rem;
    line-height: 1.4;
    font-style: italic;
}

.member-contact {
    margin-bottom: 20px;
}

.contact-email {
    color: #636E72;
    font-size: 0.75rem;
    text-decoration: none;
    font-family: 'Source Sans Pro', sans-serif;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}

.contact-email:hover {
    border-bottom-color: var(--color-primary-purple);
    color: var(--color-primary-purple);
}

.profile-btn {
    display: inline-block;
    color: var(--color-primary-black);
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    font-family: 'Source Sans Pro', sans-serif;
    text-transform: none;
    position: relative;
    padding-bottom: 2px;
}

.profile-btn::after {
    display: none;
}

.profile-btn:hover {
    color: var(--color-primary-black);
    opacity: 0.8;
}

.member-lines {
    margin-bottom: 20px;
}

/* PUBLICACIONES */
.publications-header {
    margin-bottom: 40px;
    position: relative;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

/* Filter select buttons with underline and overline style */
.filter-select-button {
    background: none;
    border: none;
    padding: 4px 0;
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    color: #000;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    text-align: left;
    min-width: 150px;
}

.filter-select-button::before {
    display: none; /* Removed top line - using single thicker line instead */
}

.filter-select-button::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px; /* Single thicker line instead of double 1px */
    background-color: #000;
}

.filter-select-button:hover {
    opacity: 0.8;
}

.filter-select-button span {
    display: block;
}

/* Adjust filters-right spacing */
.filters-right {
    display: flex;
    gap: 40px;
    align-items: center;
}

/* Filter dropdown */
.filter-dropdown {
    position: relative;
}

.filter-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 8px;
    background: white;
    border: 1px solid #E9ECEF;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    border-radius: 4px;
    z-index: 1000;
    display: none;
    max-height: 300px;
    overflow-y: auto;
    min-width: 200px;
}

.filter-dropdown-menu.show {
    display: block;
}

.filter-dropdown-menu a {
    display: block;
    padding: 8px 16px;
    color: #2D3436;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 400;
    transition: all 0.2s ease;
}

.filter-dropdown-menu a:hover {
    background: #F8F9FA;
    color: #000;
}

.filter-dropdown-menu a.active {
    font-weight: 600;
    color: #000;
    background: #F1F3F4;
}



.filters {
    display: flex;
    gap: 40px;
    align-items: center;
    width: 100%;
    justify-content: space-between;
}

.filter-group {
    display: flex;
    align-items: center;
    gap: 12px;
}

.filter-label {
    font-weight: 600;
    font-size: 0.7rem;
    color: #636E72;
    text-transform: none;
    letter-spacing: 0.1em;
    font-family: 'Source Sans Pro', sans-serif;
}

.filter-select {
    padding: 8px 0 8px 16px;
    border: none;
    border-left: 3px solid transparent;
    border-radius: 0;
    font-weight: 600;
    font-size: 0.9rem;
    background: transparent;
    color: #2D3436 !important;
    cursor: pointer;
    transition: all 0.3s ease;
    font-family: 'Source Sans Pro', sans-serif;
    text-transform: none;
    letter-spacing: 0.05em;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    min-width: 150px;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 16px;
    padding-right: 32px;
}

.filter-select:hover,
.filter-select:focus {
    border-left-color: #2D3436;
    outline: none;
    background-color: transparent;
    color: #2D3436;
    transform: translateX(4px);
}

.publications-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: relative;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}


.publication-item {
    padding: 24px 24px 24px 40px;
    transition: all 0.4s ease;
    position: relative;
    border: none;
    margin-bottom: 20px;
    background: transparent;
    box-shadow: none;
}

.publication-item:hover {
    transform: translateX(4px);
}

/* Vertical line for publications */
.publication-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    background-color: #E9ECEF;
    z-index: 1;
}

.publication-item.morada::before {
    background-color: var(--color-primary-purple);
}

.publication-item.verde::before {
    background-color: var(--color-primary-green);
}

.publication-item.both::before {
    background-color: #000000;
}

.publication-row {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.publication-content {
    flex: 1;
    min-width: 0;
}

.publication-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 16px;
}

.publication-title {
    font-size: 1.2rem;
    font-weight: 800;
    color: #2D3436;
    line-height: 1.4;
    flex: 1;
    min-width: 300px;
    letter-spacing: -0.01em;
}

.publication-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.publication-link:hover {
    color: var(--color-primary-purple);
    text-decoration: underline;
}

.publication-year {
    font-weight: 700;
    color: #000000;
    font-size: 1rem;
    font-family: 'Source Sans Pro', sans-serif;
    display: inline-block;
    margin-left: auto;
}

/* Publication dot indicator */
.publication-item::after {
    content: '';
    position: absolute;
    left: -8px;
    top: 24px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: #E9ECEF;
    z-index: 2;
}

.publication-item.morada::after { 
    background-color: var(--color-primary-purple); 
}

.publication-item.verde::after { 
    background-color: var(--color-primary-green); 
}

.publication-item.both::after { 
    content: none;
}

/* Three dots for both category */
.publication-item.both .three-dots-pub {
    position: absolute;
    left: -8px;
    top: 24px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    z-index: 2;
}

.publication-item.both .three-dots-pub span {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: block;
}

.publication-item.both .three-dots-pub .dot-green {
    background-color: var(--color-primary-green);
}

.publication-item.both .three-dots-pub .dot-purple {
    background-color: var(--color-primary-purple);
}

.publication-item.both .three-dots-pub .dot-black {
    background-color: #000000;
}

.publication-authors {
    color: #636E72;
    margin-top: 8px;
    margin-bottom: 12px;
    font-weight: 500;
    font-style: italic;
    font-size: 0.95rem;
    line-height: 1.4;
}

.publication-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 12px;
    font-size: 0.85rem;
}

.publication-journal {
    color: #636E72;
    font-weight: 500;
    font-family: 'Source Sans Pro', sans-serif;
}

.publication-doi {
    color: #95A5A6;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8rem;
}

.publication-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.pub-tag {
    padding: 4px 8px;
    background: #E9ECEF;
    border: 1px solid #DDD;
    border-radius: 2px;
    font-size: 0.7rem;
    font-weight: 600;
    color: #636E72;
    font-family: 'Source Sans Pro', sans-serif;
    text-transform: none;
    transition: all 0.2s ease;
}

.pub-tag.active {
    background: var(--color-primary-green);
    color: #fff;
    border-color: var(--color-primary-green);
}

.page-title {
    font-size: 2rem !important;
    font-weight: 900 !important;
    margin: 0 !important;
    color: #2D3436 !important;
    letter-spacing: -0.02em !important;
    position: relative !important;
    display: inline-block !important;
}

/* Remove underline */
.page-title::after {
    display: none;
}

/* UTILIDADES */
.no-content {
    text-align: center;
    padding: 60px;
    color: #95A5A6;
}

.no-content h3 {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.2rem;
    margin-bottom: 12px;
    text-transform: none;
    letter-spacing: 0.1em;
}

.no-content p {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    text-transform: none;
}

/* PROJECT FILTERS - ULTRA SPECIFIC RESET */
body .project-header,
.container .project-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
}

body .project-header .page-title,
.container .project-header .page-title {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}

body .desktop-filters-wrapper,
.container .desktop-filters-wrapper {
    margin: 8px 0 40px 0 !important;
    padding: 0 !important;
}

.project-filters {
    margin-bottom: 0;
    padding: 0;
    border-bottom: none;
    position: relative;
}


.filter-header {
    margin-bottom: 20px;
}

.filter-label {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.8rem;
    color: #636E72;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0.1em;
}

.filter-buttons {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.filter-btn {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 0 !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    font-family: 'Source Sans Pro', sans-serif !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: #000000 !important;
    text-decoration: none !important;
    outline: none !important;
    box-shadow: none !important;
    position: relative !important;
}

.filter-btn {
    position: relative !important;
    padding-left: 0 !important;
    transition: all 0.3s ease !important;
}

.filter-btn::before {
    content: '';
    position: absolute;
    left: -15px;
    top: 0;
    bottom: 0;
    width: 3px;
    background-color: #000000;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.filter-btn.active::before {
    opacity: 1;
}

/* Hover effects only on devices that actually support hover (desktop).
   Avoids iOS Safari "sticky hover" where first tap is treated as hover
   and only the second tap fires click. */
@media (hover: hover) {
    .filter-btn:hover::before {
        opacity: 1;
    }
    .filter-btn:hover {
        background: transparent !important;
        transform: translateX(4px) !important;
    }
}

.filter-btn.active {
    background: transparent !important;
    color: #000000 !important;
    font-weight: 700 !important;
    transform: translateX(4px) !important;
}

.filter-indicator {
    width: 16px !important;
    height: 16px !important;
    border-radius: 50% !important;
    display: inline-block !important;
}

.filter-indicator.all {
    background: #000000 !important;
}

.filter-indicator.verde {
    background: var(--color-primary-green) !important;
}

.filter-indicator.morada {
    background: var(--color-primary-purple) !important;
}

.filter-indicator.negro {
    background: var(--color-primary-black) !important;
}

/* PROJECT TYPE FILTERS */
.project-type-filters {
    margin-bottom: 0;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

.type-filter-buttons {
    display: flex;
    gap: 24px;
    background: transparent;
    border: none;
    border-radius: 0;
    overflow: visible;
    width: fit-content;
    position: relative;
}

.type-filter-btn {
    display: inline-flex !important;
    align-items: center !important;
    padding: 0 16px !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    font-family: 'Source Sans Pro', sans-serif !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: #000000 !important;
    text-decoration: none !important;
    outline: none !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    position: relative !important;
}

.type-filter-buttons::before {
    display: none; /* Removed top line - using single thicker line instead */
}

.type-filter-buttons::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    right: 0;
    height: 1px;
    background: #000000;
}

.type-filter-btn::before {
    content: '';
    position: absolute;
    left: -15px;
    top: 0;
    bottom: 0;
    width: 3px;
    background-color: #000000;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.type-filter-btn.active::before {
    opacity: 1;
}

@media (hover: hover) {
    .type-filter-btn:hover::before {
        opacity: 1;
    }
    .type-filter-btn:hover {
        background: transparent !important;
        transform: translateX(4px) !important;
    }
}

.type-filter-btn.active {
    background: transparent !important;
    color: #000000 !important;
    font-weight: 700 !important;
    transform: translateX(4px) !important;
}

.type-filter-text {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* PROJECT TYPE BADGES */
.project-type-badge {
    margin-bottom: 12px;
}

.type-badge {
    display: inline-block;
    padding: 0;
    border-radius: 0;
    font-size: 0.85rem;
    font-weight: 400;
    text-transform: lowercase;
    letter-spacing: 0;
    font-family: 'Source Sans Pro', sans-serif;
    color: #636E72;
}

.type-badge.main,
.type-badge.phd,
.type-badge.contrato,
.type-badge.otro {
    background: transparent;
}

/* MEMBER TYPE BADGES */
.member-type-badge {
    margin-bottom: 12px;
    text-align: center;
}

.member-type-badge-text {
    display: inline-block;
    padding: 0 !important;
    border-radius: 0 !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    font-family: 'Source Sans Pro', sans-serif !important;
    background: transparent !important;
    color: #000000 !important;
}

.member-type-badge-text.members {
    background: transparent !important;
    color: #000000 !important;
}

.member-type-badge-text.alumni {
    background: transparent !important;
    color: #000000 !important;
}

.member-type-badge-text.collaborators {
    background: transparent !important;
    color: #000000 !important;
}

/* DISSEMINATION PAGE STYLES */
.dissemination-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 50px;
    position: relative;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

@media (max-width: 768px) {
    .dissemination-grid {
        grid-template-columns: 1fr;
        padding: 24px;
        gap: 24px;
    }
}


.dissemination-card {
    position: relative;
    border: none;
    background: transparent;
    margin: 0;
    margin-bottom: 60px;
}

.dissemination-card:hover {
    transform: none;
}

/* Card line wrapper */
.dissemination-card .card-line-wrapper {
    position: relative;
}

.dissemination-card .card-line-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: -30px;
    right: 0;
    height: 3px;
    background-color: #E9ECEF;
    z-index: 2;
}

.dissemination-card.verde .card-line-wrapper::before {
    background-color: var(--color-primary-green);
}

.dissemination-card.morada .card-line-wrapper::before {
    background-color: var(--color-primary-purple);
}

.dissemination-card.both .card-line-wrapper::before {
    background-color: #000000;
}

/* Card line dot styles moved to main definition above */

.dissemination-image {
    width: 100%;
    height: 200px;
    background: #F1F3F4;
    background-size: cover;
    background-position: center;
    border: none;
    position: relative;
    margin-bottom: 0;
}

.dissemination-image-placeholder {
    width: 100%;
    height: 200px;
    background: #F1F3F4;
    border: none;
    position: relative;
    margin-bottom: 0;
}

.dissemination-image-placeholder::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50px;
    height: 50px;
    background: #DDD;
    border-radius: 2px;
}

.dissemination-content {
    padding: 0;
    margin-top: 20px;
}

.dissemination-meta {
    margin-bottom: 12px;
}

.dissemination-coordinates {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.85rem;
    color: #636E72;
    font-weight: 400;
}

.dissemination-type-badge {
    margin-bottom: 12px;
}

.dissemination-type-badge-text {
    display: inline-block;
    padding: 0;
    background: transparent;
    color: #636E72;
    border-radius: 0;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: lowercase;
    letter-spacing: 0.02em;
    font-family: 'Source Sans Pro', sans-serif;
}

.dissemination-title {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 12px;
    color: #2D3436;
    line-height: 1.3;
    letter-spacing: 0;
}

.dissemination-description {
    color: #636E72;
    line-height: 1.6;
    margin-bottom: 20px;
    font-weight: 400;
    font-size: 1.05rem;
}

.dissemination-details {
    margin-bottom: 16px;
    display: flex;
    gap: 16px;
    font-size: 0.85rem;
    color: #636E72;
}

.dissemination-date {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.85rem;
    color: #636E72;
    font-weight: 500;
}

.dissemination-location {
    font-size: 0.85rem;
    color: #636E72;
    font-weight: 400;
    font-style: normal;
}

/* Additional specificity for filter buttons - removed to use main styles */

/* PROJECTS PAGE STYLES */
.projects-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    position: relative;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    margin-bottom: 40px;
}

@media (max-width: 1200px) {
    .projects-container {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .projects-container {
        grid-template-columns: 1fr;
        padding: 24px;
        gap: 24px;
    }
}


.project-card-large {
    background: #F8F9FA;
    border-radius: 0;
    padding: 32px;
    transition: all 0.4s ease;
    position: relative;
    border: none;
    border-left: 4px solid #F1F3F4;
    display: flex;
    flex-direction: column;
    min-height: 400px;
    box-shadow: none;
}

.project-card-large:hover {
    transform: translateX(8px);
    box-shadow: none;
}

.project-card-large.morada {
    border-left-color: var(--color-primary-purple);
}

.project-card-large.verde {
    border-left-color: var(--color-primary-green);
}

.project-card-large.both {
    border-left: 4px solid transparent;
    background-image: linear-gradient(#F8F9FA, #F8F9FA),
                      linear-gradient(180deg, var(--color-primary-green) 0%, var(--color-primary-purple) 100%);
    background-origin: padding-box, border-box;
    background-clip: padding-box, border-box;
    background-position: center, left;
    background-size: 100%, 4px 100%;
    background-repeat: no-repeat;
}

.project-image-placeholder {
    width: 100%;
    height: 180px;
    background: #E9ECEF;
    border-radius: 2px;
    margin-bottom: 24px;
    position: relative;
}

.project-image-placeholder::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    background: #DDD;
    border-radius: 2px;
}

.project-module-tag {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}

.project-indicator {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.project-indicator.morada {
    background: var(--color-primary-purple);
}

.project-indicator.verde {
    background: var(--color-primary-green);
}

.project-indicator.both {
    background: linear-gradient(45deg, var(--color-primary-purple) 50%, var(--color-primary-green) 50%);
}

.module-text {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.7rem;
    color: #636E72;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0.05em;
}

.project-card-title {
    font-size: 1.4rem;
    font-weight: 800;
    margin-bottom: 16px;
    color: #2D3436;
    line-height: 1.3;
    letter-spacing: -0.01em;
    flex-grow: 0;
}

.project-card-description {
    color: #636E72;
    line-height: 1.6;
    margin-bottom: 24px;
    font-weight: 400;
    flex-grow: 1;
}

.access-btn {
    display: inline-block;
    color: var(--color-primary-black);
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    font-family: 'Source Sans Pro', sans-serif;
    text-transform: none;
    align-self: flex-start;
    position: relative;
    padding-bottom: 2px;
}

.access-btn::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--color-primary-black);
    transition: width 0.3s ease;
}

.access-btn:hover {
    color: var(--color-primary-black);
}

.access-btn:hover::after {
    width: 100%;
}

/* Project Card Elements - Complete styles */
.project-card-title {
    font-size: 1.4rem;
    font-weight: 800;
    margin-bottom: 16px;
    color: #2D3436;
    line-height: 1.3;
    letter-spacing: -0.01em;
    flex-grow: 0;
}

.project-card-description {
    color: #636E72;
    line-height: 1.6;
    margin-bottom: 24px;
    font-weight: 400;
    flex-grow: 1;
}

/* PUBLICATIONS PAGE STYLES */
.publication-indicator-container {
    margin-bottom: 8px;
}

.publication-indicator {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 8px;
}

.publication-indicator.morada {
    background: var(--color-primary-purple);
}

.publication-indicator.verde {
    background: var(--color-primary-green);
}

.publication-indicator.both {
    background: linear-gradient(45deg, var(--color-primary-purple) 50%, var(--color-primary-green) 50%);
}

/* PROJECTS PAGE MOBILE RESPONSIVE */
@media (max-width: 768px) {
    .project-card-large {
        padding: 24px;
        min-height: 350px;
    }
    
    .project-image-placeholder {
        height: 140px;
    }
    
    .project-card-title {
        font-size: 1.2rem;
    }
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .container {
        padding: 20px;
    }
    
    .nav {
        grid-template-columns: auto 1fr;
        gap: 20px;
        align-items: center;
        padding: 20px 0;
    }
    
    .nav-toggle {
        justify-self: end;
    }
    
    .hero {
        padding: 40px 20px;
        margin-bottom: 60px;
    }
    
    .hero h1 {
        font-size: 2.8rem;
    }
    
    .content-grid {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 24px;
    }
    
    .projects-grid,
    .members-grid {
        grid-template-columns: 1fr;
        padding: 24px;
    }
    
    .publications-header {
        padding: 24px;
    }
    
    .filters {
        flex-direction: column;
        gap: 16px;
        align-items: stretch;
    }
    
    .filter-group {
        flex-direction: column;
        gap: 8px;
        align-items: stretch;
    }
    
    .publications-list {
        padding: 24px;
    }
    
    .page-title {
        font-size: 2rem;
        margin-bottom: 40px;
    }
    
    .content-card {
        padding: 24px;
    }
    
    .project-content,
    .member-card {
        padding: 20px;
    }
    
    .publication-item {
        padding: 20px;
    }
}


/* REDUCED HEADER MARGINS */
h1, h2, h3, h4, h5, h6 {
    margin-top: 0 !important;
    margin-bottom: 16px !important;
}

h1 {
    margin-top: 0 !important;
    margin-bottom: 20px !important;
}

.hero h1 {
    margin-top: 0 !important;
    margin-bottom: 24px !important;
}

.page-title {
    margin-top: 0 !important;
    margin-bottom: 30px !important;
}

.project-title,
.member-name,
.publication-title,
.dissemination-title,
.content-block-title,
.detail-title,
.detail-title-minimal,
.related-title,
.sidebar-title {
    margin-top: 8px !important;
    margin-bottom: 12px !important;
}

/* Specific adjustments for nested contexts */
.hero p {
    margin-bottom: 24px !important;
}

.project-card-title {
    margin-bottom: 12px !important;
}

/* Also reduce margins for filter labels */
.filter-label {
    margin-bottom: 4px !important;
}

/* Footer */
.footer {
    background: var(--color-primary-black);
    color: var(--color-white);
    padding: 40px 0;
    margin-top: 80px;
    border-top: none;
}

.footer-content {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.footer-logo img {
    height: 40px;
    width: auto;
}

.footer-info {
    text-align: center;
    flex: 1;
}

.footer-info p {
    margin: 0;
    font-size: 0.9rem;
    color: #B2BAC2;
    line-height: 1.6;
}

.footer-info p:first-child {
    font-weight: 500;
    color: var(--color-white);
}

/* Footer sponsors logos */
.footer-sponsors {
    display: flex;
    align-items: center;
    gap: 30px;
}

.footer-sponsors img {
    height: 50px;
    width: auto;
    opacity: 0.9;
    transition: opacity 0.3s ease;
}

.footer-sponsors img:hover {
    opacity: 1;
}

/* Responsive footer */
@media (max-width: 768px) {
    .footer-content {
        flex-direction: column;
        text-align: center;
    }
    
    .footer-info {
        text-align: center;
    }
    
    .footer-sponsors {
        justify-content: center;
        flex-wrap: wrap;
    }
    
    .footer-sponsors img {
        height: 40px;
    }
}

/* DETAIL PAGES */
.detail-hero {
    background: var(--color-dark);
    padding: 60px 0;
    margin-bottom: 60px;
    position: relative;
}

.detail-hero-morada {
    border-bottom-color: var(--color-primary-purple);
}

.detail-hero-verde {
    border-bottom-color: var(--color-primary-green);
}

.detail-hero-both {
    border-image: linear-gradient(90deg, var(--color-primary-purple), var(--color-primary-green)) 1;
}

.detail-hero-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

.detail-title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--color-white);
    margin: 0;
    letter-spacing: -0.01em;
    text-align: center;
}

/* MEMBER DETAIL SPECIFIC STYLES */
.detail-hero-minimal {
    background: var(--color-white);
    padding: 30px 0;
    margin-bottom: 40px;
    border-bottom: 1px solid var(--color-gray-light);
}

.detail-title-minimal {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--color-primary-black);
    margin: 0;
    letter-spacing: -0.01em;
    text-align: center;
}

/* Detail Content */
.detail-content-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px 60px;
}

.detail-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 60px;
}

.detail-layout-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin-top: 40px;
}

.member-photo-section {
    text-align: center;
    margin-bottom: 40px;
}

.member-detail-photo {
    width: 300px;
    height: 300px;
    object-fit: cover;
    border-radius: 50%;
    box-shadow: none;
    border: 4px solid white;
}

/* NEW MEMBER DETAIL LAYOUT */
.member-detail-top-grid {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 60px;
    margin-bottom: 60px;
    align-items: start;
}

.member-detail-photo-column {
    position: relative;
}

.member-detail-photo-v2 {
    width: 300px;
    height: 450px;
    object-fit: cover;
    background-color: #F1F3F4;
    border-radius: 2px;
    display: block;
}

.member-detail-info-column {
    padding-top: 20px;
}

.member-detail-bio-column {
    padding-top: 20px;
}

.member-detail-bio-content {
    margin-top: 30px;
}

.member-detail-info-section {
    margin-top: 60px;
    margin-bottom: 60px;
}

/* NEW MEMBER DETAIL LAYOUT V2 */
.member-detail-content-column {
    padding-top: 0;
    display: flex;
    flex-direction: column;
    gap: 30px;
    height: fit-content;
}

.member-detail-header-v2 {
    border-bottom: 1px solid #E9ECEF;
    padding-bottom: 20px;
}

.member-detail-position-v2 {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.8rem;
    font-weight: 700;
    color: #2D3436;
    margin: 8px 0 12px 0;
    line-height: 1.2;
}

.member-research-line {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.1rem;
    font-weight: 500;
    color: #636E72;
    margin: 0;
    text-transform: lowercase;
    letter-spacing: 0.02em;
}

.member-quick-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px 0;
    border-bottom: 1px solid #F1F3F4;
}

.quick-info-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.quick-label {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    color: #636E72;
    text-transform: lowercase;
    min-width: 80px;
}

.quick-value {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    color: #2D3436;
}

.quick-value a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.quick-value a:hover {
    color: #000;
}

.member-academic-links-prominent {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.academic-link-prominent {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background: #F8F9FA;
    border: 1px solid #E9ECEF;
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.2s ease;
    min-width: 140px;
}

.academic-link-prominent:hover {
    background: #E9ECEF;
    border-color: #2D3436;
    transform: translateY(-1px);
}

.link-icon {
    font-size: 1rem;
}

.link-text {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    color: #2D3436;
    text-transform: lowercase;
}

.member-bio-section-v2 {
    flex: 1;
}

.bio-content {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    color: #636E72;
}

.bio-content p {
    margin-bottom: 16px;
}

/* MINIMAL FLOWING MEMBER LAYOUT */
.member-detail-minimal-column {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-top: 0;
}

.member-minimal-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.member-meta-inline {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 4px;
}

.member-type-minimal {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    color: #636E72;
    text-transform: lowercase;
}

.member-title-large {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 2.2rem;
    font-weight: 600;
    color: #2D3436;
    line-height: 1.1;
    margin: 0;
}

.member-line-subtitle {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.1rem;
    font-weight: 400;
    color: #636E72;
    text-transform: lowercase;
    letter-spacing: 0.02em;
    margin-top: 4px;
}

.member-essential-info {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

.info-tag {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    color: #636E72;
    background: transparent;
    border: 1px solid #E9ECEF;
    padding: 6px 12px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.2s ease;
}

.info-tag:hover,
.email-tag:hover {
    border-color: #2D3436;
    color: #2D3436;
}

.member-bio-flowing {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    color: #636E72;
}

.member-bio-flowing p {
    margin-bottom: 16px;
}

.member-links-minimal {
    display: flex;
    gap: 24px;
    margin-top: 8px;
}

.link-minimal {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    color: #2D3436;
    text-decoration: none;
    text-transform: lowercase;
    position: relative;
    transition: all 0.2s ease;
}

.link-minimal::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -2px;
    left: 0;
    background-color: #2D3436;
    transition: width 0.2s ease;
}

.link-minimal:hover::after {
    width: 100%;
}

.link-minimal:hover {
    color: #000;
}

.member-detail-header {
    margin-bottom: 40px;
}

.member-detail-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.member-detail-meta .line-indicator {
    width: 18px !important;
    height: 18px !important;
    border-radius: 50% !important;
}

.member-detail-meta .member-type-badge-text {
    display: inline-block;
    padding: 4px 10px;
    background: #000000;
    color: #FFFFFF;
    border-radius: 2px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0.1em;
    font-family: 'Source Sans Pro', sans-serif;
}

.member-detail-position {
    font-size: 1.8rem;
    font-weight: 800;
    color: #2D3436;
    margin: 0;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.member-detail-info-grid {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
}

.info-group {
    border-left: 3px solid #E9ECEF;
    padding-left: 20px;
    min-width: 250px;
}

.info-group-title {
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0.08em;
    margin-bottom: 20px;
    color: #636E72;
    font-family: 'Source Sans Pro', sans-serif;
}

.info-row {
    margin-bottom: 12px;
}

.info-row .info-label {
    display: inline-block;
    font-size: 0.8rem;
    color: #636E72;
    text-transform: none;
    letter-spacing: 0.05em;
    margin-right: 8px;
    font-weight: 600;
    min-width: 100px;
}

.info-row .info-value {
    color: #2D3436;
    font-weight: 500;
    font-size: 0.9rem;
}

.info-row .info-value a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.info-row .info-value a:hover {
    color: var(--color-primary-purple);
}

.academic-links-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.academic-link {
    display: inline-block;
    color: var(--color-primary-black);
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: all 0.3s ease;
}

.academic-link:hover {
    opacity: 0.8;
}

/* Biography section */
.member-detail-bio-section {
    border-top: 1px solid #E9ECEF;
    padding-top: 40px;
}

.member-detail-bio-section .content-block-title {
    margin-bottom: 24px;
}

/* Responsive design for member detail */
@media (max-width: 768px) {
    .member-detail-top-grid {
        grid-template-columns: 1fr;
        gap: 40px;
        margin-bottom: 40px;
    }
    
    .member-detail-photo-column {
        text-align: center;
    }
    
    .member-detail-photo-v2 {
        width: 200px;
        height: 300px;
        margin: 0 auto;
    }
    
    .member-detail-info-column {
        padding-top: 0;
    }
    
    .member-detail-bio-column {
        padding-top: 0;
    }
    
    .member-detail-bio-content {
        margin-top: 20px;
    }
    
    .member-detail-info-section {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    
    /* Responsive for new layout v2 */
    .member-detail-content-column {
        gap: 20px;
    }
    
    .member-detail-position-v2 {
        font-size: 1.5rem;
    }
    
    .member-research-line {
        font-size: 1rem;
    }
    
    .member-quick-info {
        padding: 15px 0;
    }
    
    .academic-link-prominent {
        min-width: 120px;
        padding: 10px 12px;
    }
    
    .quick-label {
        min-width: 70px;
        font-size: 0.8rem;
    }
    
    /* Responsive for minimal flowing layout */
    .member-detail-minimal-column {
        gap: 24px;
    }
    
    .member-title-large {
        font-size: 1.8rem;
    }
    
    .member-line-subtitle {
        font-size: 1rem;
    }
    
    .member-essential-info {
        gap: 8px;
    }
    
    .info-tag {
        font-size: 0.8rem;
        padding: 5px 10px;
    }
    
    .member-links-minimal {
        gap: 16px;
        margin-top: 4px;
    }
    
    .member-detail-info-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .member-detail-position {
        font-size: 1.5rem;
    }
}

.detail-main-column {
    display: block;
}

.member-bio-content {
    flex: 1;
}

.research-focus-section {
    margin-top: 40px;
}

.academic-section {
    margin-top: 40px;
}

.academic-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.content-block-title {
    font-size: 1.1rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0.08em;
    margin-bottom: 20px;
    color: var(--color-dark);
    font-family: 'Source Sans Pro', sans-serif;
}

.content-text {
    line-height: 1.8;
    color: #495057;
}

.content-text p {
    margin-bottom: 16px;
}

/* Sidebar */
.detail-sidebar {
    position: sticky;
    top: 40px;
}

.sidebar-block {
    background: #F8F9FA;
    padding: 32px;
    border-radius: 4px;
    margin-bottom: 24px;
    border: 1px solid var(--color-gray-light);
}

.sidebar-title {
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0.08em;
    margin-bottom: 20px;
    color: var(--color-dark);
    font-family: 'Source Sans Pro', sans-serif;
}

.info-item {
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #E9ECEF;
}

.info-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.info-label {
    font-size: 0.8rem;
    color: #636E72;
    text-transform: none;
    letter-spacing: 0.05em;
    display: block;
    margin-bottom: 4px;
    font-weight: 600;
}

.info-value {
    color: var(--color-dark);
    font-weight: 500;
}

.sidebar-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.action-btn {
    display: block;
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: 0.05em;
    text-transform: none;
    font-family: 'Source Sans Pro', sans-serif;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
    padding: 8px 0;
    text-align: left;
}

.action-btn::after {
    display: none;
}

.action-btn:hover {
    opacity: 0.8;
}

.action-btn.primary {
    color: var(--color-primary-black);
}

.action-btn.primary:hover {
    color: var(--color-primary-black);
}

.action-btn.secondary {
    color: var(--color-dark);
}

.action-btn.secondary:hover {
    color: var(--color-primary-black);
}

/* Related Section */
.related-section {
    padding: 80px 0;
    margin-top: 80px;
    border-top: 1px solid var(--color-dark);
}

.related-title {
    font-size: 2.5rem;
    font-weight: 900;
    text-align: center;
    margin-bottom: 48px;
    color: var(--color-dark);
}

.related-grid {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 32px;
}

.related-card {
    overflow: hidden;
    transition: all 0.3s ease;
    border-left: 3px solid var(--color-dark);
    padding-left: 24px;
}

.related-card:hover {
    transform: translateX(8px);
    border-left-width: 5px;
}

.related-image {
    height: 200px;
    background-size: cover;
    background-position: center top;
    background-color: #F1F3F4;
}

.related-content {
    padding: 24px;
}

.related-project-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--color-dark);
}

.related-project-desc {
    font-size: 0.9rem;
    color: #636E72;
    margin-bottom: 16px;
}

.related-link {
    color: var(--color-primary-black);
    text-decoration: none;
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: none;
    letter-spacing: 0.05em;
    position: relative;
    padding-bottom: 2px;
    display: inline-block;
}

.related-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--color-primary-black);
    transition: width 0.3s ease;
}

.related-link:hover::after {
    width: 100%;
}

/* Academic Links */
.academic-link {
    color: var(--color-primary-purple);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    display: inline-block;
    margin-bottom: 10px;
    transition: color 0.3s ease;
}

.academic-link:hover {
    color: var(--color-primary-green);
}

/* Member Department */
.member-department {
    color: #636E72;
    font-size: 0.85rem;
    margin-top: 8px;
    font-style: italic;
}

/* Responsive Detail Pages */
@media (max-width: 992px) {
    .detail-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    
    .detail-layout-two-col {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    
    .member-detail-grid-v3 {
        grid-template-columns: 200px 1fr;
        gap: 40px;
    }
    
    .member-detail-photo-v3 {
        width: 200px;
        height: 300px;
    }
}

@media (max-width: 768px) {
    .detail-title {
        font-size: 2rem;
    }
    
    .detail-title-minimal {
        font-size: 1.5rem;
    }
    
    .member-detail-grid-v3 {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .member-detail-photo-v3 {
        width: 100%;
        max-width: 300px;
        height: 400px;
    }
    
    .detail-sidebar {
        position: static;
    }
    
    .related-grid {
        grid-template-columns: 1fr;
    }
    
    .member-detail-name {
        font-size: 2rem;
    }
}

/* Responsive Footer */
@media (max-width: 768px) {
    .footer-content {
        flex-direction: column;
        text-align: center;
    }
    
    .footer-info {
        text-align: center;
    }
}

/* ===== TIMELINE STYLES ===== */
.timeline-container {
    margin: 10px 0 20px 0;
    padding: 15px 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.timeline-line {
    position: relative;
    height: 80px;
    margin: 20px 0;
}

.timeline-line::before {
    content: '';
    position: absolute;
    top: 40px;
    left: 0;
    right: 0;
    height: 2px;
    background: #2D3436;
    z-index: 1;
}

.timeline-point {
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    z-index: 2;
    cursor: pointer;
    transition: all 0.3s ease;
}

.timeline-point:hover {
    transform: translateX(-50%) scale(1.1);
}

.timeline-marker {
    width: 12px;
    height: 12px;
    background: #2D3436;
    border-radius: 50%;
    margin: 0 auto 8px;
    position: relative;
    top: 34px;
    border: 2px solid #fff;
    box-shadow: none;
}

.timeline-point:hover .timeline-marker {
    background: #3B82F6;
    transform: scale(1.2);
}

.timeline-label {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    color: #2D3436;
    text-align: center;
    margin-bottom: 2px;
}

.timeline-count {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    color: #636E72;
    text-align: center;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(45, 52, 54, 0.1);
    border-radius: 10px;
    padding: 2px 6px;
    margin-top: 2px;
    display: inline-block;
}

.timeline-point.active .timeline-marker {
    background: #3B82F6 !important;
    transform: scale(1.3);
}

.timeline-point.active .timeline-label {
    color: #3B82F6;
    font-weight: 700;
}

.timeline-point.active .timeline-count {
    background: #3B82F6;
    color: #fff;
    border-color: #3B82F6;
}

/* Responsive timeline */
@media (max-width: 768px) {
    .timeline-container {
        margin: 10px 0;
        padding: 0 10px;
    }
    
    .timeline-line {
        height: 70px;
    }
    
    .timeline-marker {
        width: 10px;
        height: 10px;
        top: 30px;
    }
    
    .timeline-label {
        font-size: 0.65rem;
    }
    
    .timeline-count {
        font-size: 0.6rem;
        padding: 1px 4px;
    }
}

/* ===== MOBILE COLOR FILTERS ===== */
.mobile-color-filters {
    display: none;
    gap: 15px;
    justify-content: center;
    margin: 20px 0;
    padding: 20px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 4px;
}

.color-filter-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.color-filter-square {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 2px solid rgba(45, 52, 54, 0.2);
    transition: all 0.3s ease;
    position: relative;
}

.color-filter-square.verde {
    background: #10B981;
}

.color-filter-square.morada {
    background: #8B5CF6;
}

.color-filter-square.both {
    background: linear-gradient(45deg, #10B981 50%, #8B5CF6 50%);
}

.color-filter-square.negro {
    background: #000000;
    border: 2px solid #000000;
}

.color-filter-square.all {
    background: #000000;
    border: 2px solid #000000;
}

.color-filter-item.active .color-filter-square {
    transform: scale(1.1);
    box-shadow: none;
    border-color: #2D3436;
    border-width: 3px;
}

.color-filter-label {
    display: none;
}

/* ===== MOBILE ADDITIONAL FILTERS ===== */
.mobile-additional-filters {
    display: none;
    margin: 20px 0;
    padding: 15px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 4px;
    gap: 10px;
    flex-direction: column;
}

.mobile-filter-row {
    display: flex;
    gap: 10px;
    width: 100%;
}

.mobile-filter-select {
    flex: 1;
    padding: 10px;
    border: 1px solid rgba(45, 52, 54, 0.2);
    border-radius: 4px;
    background: #fff;
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.75rem;
    font-weight: 500;
    color: #2D3436;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 8px center;
    background-repeat: no-repeat;
    background-size: 16px;
    padding-right: 32px;
}

.mobile-filter-select:focus {
    outline: none;
    border-color: #3B82F6;
    box-shadow: none;
}

/* ===== DESKTOP COLOR FILTERS ===== */
.desktop-color-filters {
    display: flex;
    gap: 8px;
    align-items: center;
}

.desktop-color-item {
    cursor: pointer;
    transition: all 0.3s ease;
}

.desktop-color-item:hover {
    transform: scale(1.1);
}

.desktop-color-square {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid rgba(45, 52, 54, 0.2);
    transition: all 0.3s ease;
}

.desktop-color-square.all {
    background: #000000;
    border-color: #000000;
}

.desktop-color-square.verde {
    background: #10B981;
    border-color: #10B981;
}

.desktop-color-square.morada {
    background: #8B5CF6;
    border-color: #8B5CF6;
}

.desktop-color-square.negro {
    background: #000000;
    border-color: #000000;
}

.desktop-color-item.active .desktop-color-square {
    transform: scale(1.2);
    box-shadow: none;
    border-width: 3px;
}

.desktop-color-item.active .desktop-color-square.all {
    border-color: #000000;
}

.desktop-color-item.active .desktop-color-square.verde {
    border-color: #10B981;
}

.desktop-color-item.active .desktop-color-square.morada {
    border-color: #8B5CF6;
}

@media (max-width: 768px) {
    .mobile-color-filters,
    .mobile-additional-filters {
        display: flex;
    }
    
    .publications-header .filters,
    .project-filters.desktop-filters,
    .desktop-filters,
    .desktop-filters-wrapper {
        display: none !important;
    }
}

/* =====================================================
   DETAIL PAGES - MINIMALIST DESIGN
   ===================================================== */

/* Hero Section */
.detail-hero-minimal {
    padding: 40px 0;
    margin-bottom: 40px;
}

.detail-hero-minimal .detail-hero-content {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
}

.detail-title-minimal {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
    color: #2D3436;
}

/* PROJECT DETAIL STYLES */
.project-detail-top-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin-bottom: 60px;
    align-items: start;
}

.project-detail-image-column {
    width: 100%;
}

.project-detail-image-v2 {
    width: 100%;
    height: 400px;
    object-fit: cover;
    border: none;
    border-radius: 0;
}

.project-detail-info-column {
    padding-top: 20px;
}

.project-detail-header {
    margin-bottom: 40px;
}

.project-detail-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.project-type-text {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: #2D3436;
    text-transform: lowercase;
}

.project-detail-line {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: #2D3436;
    margin: 0;
    text-transform: lowercase;
}

.project-detail-info-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
}

.info-group {
    background: none;
    border: none;
    padding: 0;
}

.info-group-title {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #2D3436;
    margin-bottom: 16px;
    text-transform: lowercase;
}

.info-row {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
    padding-bottom: 4px;
    gap: 12px;
}

.info-label {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    font-weight: 400;
    color: #636E72;
    text-transform: lowercase;
}

.info-value {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    color: #2D3436;
    text-transform: lowercase;
}

.project-actions-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.action-link {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    color: #2D3436;
    text-decoration: none;
    text-transform: lowercase;
    transition: all 0.2s ease;
    display: block;
}

.action-link:hover {
    color: #000;
    font-weight: 700;
}

.project-detail-description-section {
    margin-bottom: 60px;
}

.content-block-title {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: #2D3436;
    margin-bottom: 24px;
    text-transform: lowercase;
}

.content-text {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    color: #636E72;
}

.content-text p {
    margin-bottom: 16px;
}

.project-detail-gallery-section {
    margin-bottom: 60px;
}

.project-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 20px;
}

.gallery-item-minimal {
    background: none;
    border: none;
    overflow: hidden;
}

.gallery-image-minimal {
    width: 100%;
    height: 150px;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.gallery-item-minimal:hover .gallery-image-minimal {
    transform: scale(1.02);
}

/* NEWS DETAIL STYLES */
.news-detail-top-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin-bottom: 60px;
    align-items: start;
}

.news-detail-image-column {
    width: 100%;
}

.news-detail-image-v2 {
    width: 100%;
    height: 400px;
    object-fit: cover;
    border: none;
    border-radius: 0;
}

.news-detail-info-column {
    padding-top: 20px;
}

.news-detail-header {
    margin-bottom: 40px;
}

.news-detail-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.news-type-text {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: #2D3436;
    text-transform: lowercase;
}

.news-detail-line {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: #2D3436;
    margin: 0;
    text-transform: lowercase;
}

.news-detail-info-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
}

.news-actions-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.news-detail-description-section {
    margin-bottom: 60px;
}

/* Related Section */
.related-section {
    max-width: 1400px;
    margin: 0 auto;
    padding: 60px 40px;
    background: none;
}

.related-title {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: left;
    margin-bottom: 40px;
    color: #2D3436;
    text-transform: lowercase;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 30px;
}

.related-card {
    background: #fff;
    border: none;
    overflow: hidden;
    transition: all 0.3s ease;
}

.related-card:hover {
    transform: translateY(-4px);
}

/* Duplicate .related-image removed - using definition at ~L3228 with center top */

.related-content {
    padding: 20px 0;
}

.related-project-title {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 10px;
    color: #2D3436;
    text-transform: lowercase;
}

.related-project-desc {
    color: #636E72;
    margin-bottom: 15px;
    line-height: 1.6;
}

.related-link {
    color: #2D3436;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.9rem;
    font-family: 'Source Sans Pro', sans-serif;
    text-transform: lowercase;
    transition: all 0.2s ease;
}

.related-link:hover {
    color: #000;
    font-weight: 700;
}

/* Responsive Design */
@media (max-width: 768px) {
    .project-detail-top-grid,
    .news-detail-top-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .detail-title-minimal {
        font-size: 2rem;
    }
    
    .detail-hero-minimal .detail-hero-content {
        padding: 0 20px;
    }
    
    .project-detail-image-v2,
    .news-detail-image-v2 {
        height: 250px;
    }
    
    .related-section {
        padding: 40px 20px;
    }
    
    .project-detail-info-column,
    .news-detail-info-column {
        padding-top: 0;
    }
}

/* =====================================================
   DISSEMINATION DETAIL STYLES
   ===================================================== */

.dissemination-detail-info-section {
    margin-bottom: 60px;
    padding: 20px 0;
}

.dissemination-detail-header {
    margin-bottom: 40px;
}

.dissemination-detail-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.dissemination-type-text {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: #2D3436;
    text-transform: lowercase;
}

.dissemination-detail-line {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: #2D3436;
    margin: 0;
    text-transform: lowercase;
}

.dissemination-detail-info-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 60px;
}

.dissemination-actions-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dissemination-detail-description-section,
.dissemination-detail-extended-section {
    margin-bottom: 60px;
}

/* Responsive Design for Dissemination */
@media (max-width: 768px) {
    .dissemination-detail-info-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .dissemination-detail-info-section {
        margin-bottom: 40px;
        padding: 0;
    }
}


/* =====================================================
   MEMBER DETAIL PAGE V3 - Complete Redesign
   ===================================================== */

.member-detail-grid-v3 {
    display: grid;
    grid-template-columns: 308px 1fr; /* 300px photo + 8px for dot overflow */
    gap: 60px;
    margin-bottom: 60px;
    align-items: start;
    margin-top: 40px;
    padding-left: 0;
    margin-left: -8px; /* Compensate for the dot overflow */
}

.member-detail-photo-wrapper {
    position: relative;
    padding-top: 20px;
    margin-left: 8px; /* Offset for the line and dot */
}

/* Vertical line for photo */
.member-detail-photo-wrapper::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    background-color: #000000;
    z-index: 1;
}

.member-detail-photo-wrapper.verde::before {
    background-color: var(--color-primary-green);
}

.member-detail-photo-wrapper.morada::before {
    background-color: var(--color-primary-purple);
}

.member-detail-photo-wrapper.both::before {
    background-color: #000000;
}

/* Dot indicator */
.member-detail-photo-wrapper::after {
    content: "";
    position: absolute;
    left: -8px;
    top: 10px;
    width: 16px;
    height: 16px;
    background-color: #000000;
    border-radius: 50%;
    z-index: 2;
}

.member-detail-photo-wrapper.verde::after {
    background-color: var(--color-primary-green);
}

.member-detail-photo-wrapper.morada::after {
    background-color: var(--color-primary-purple);
}

/* Three dots for both category */
.member-detail-photo-wrapper.both::after {
    content: none;
}

.three-dots-detail {
    position: absolute;
    left: -8px;
    top: -8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    z-index: 2;
}

.three-dots-detail span {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: block;
}

.three-dots-detail .dot-green {
    background-color: var(--color-primary-green);
}

.three-dots-detail .dot-purple {
    background-color: var(--color-primary-purple);
}

.three-dots-detail .dot-black {
    background-color: #000000;
}

.member-detail-photo-v3 {
    width: 300px;
    height: 450px;
    object-fit: cover;
    background-color: #F8F9FA;
    border-radius: 0;
    display: block;
}

.member-detail-content-v3 {
    padding-top: 20px;
}

.member-detail-name-section {
    margin-bottom: 40px;
}

.member-detail-name {
    font-size: 3rem;
    font-weight: 900;
    color: #000000;
    margin: 0 0 12px 0;
    line-height: 1.1;
    font-family: "Source Sans Pro", sans-serif;
}

.member-detail-position-v3 {
    font-size: 1.5rem;
    font-weight: 600;
    color: #2D3436;
    margin: 0 0 20px 0;
    font-family: "Source Sans Pro", sans-serif;
}

.member-detail-line-info {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}

.line-indicator-detail {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: #000000;
}

.line-indicator-detail.line-verde {
    background-color: var(--color-primary-green);
}

.line-indicator-detail.line-morada {
    background-color: var(--color-primary-purple);
}

.line-indicator-detail.line-both {
    width: auto;
    height: 16px;
    background: transparent;
    display: flex;
    align-items: center;
    gap: 4px;
    border-radius: 0;
}

.line-indicator-detail.line-both::before,
.line-indicator-detail.line-both::after,
.line-indicator-detail.line-both .middle-dot {
    content: "";
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: block;
}

.line-indicator-detail.line-both::before {
    background-color: var(--color-primary-green);
}

.line-indicator-detail.line-both .middle-dot {
    background-color: var(--color-primary-purple);
}

.line-indicator-detail.line-both::after {
    background-color: #000000;
}

.member-line-text {
    font-size: 1.2rem;
    font-weight: 700;
    color: #000000;
    font-family: "Source Sans Pro", sans-serif;
}

.member-department {
    font-size: 1.1rem;
    color: #000000;
    margin-top: 8px;
    font-family: "Source Sans Pro", sans-serif;
    font-style: normal;
    text-transform: lowercase;
}

.member-detail-bio-text {
    margin-top: 30px;
}

.member-detail-bio-text p {
    font-size: 1.1rem;
    line-height: 1.7;
    color: #2D3436;
    margin: 0;
}

/* Left Column for Photo and Links */
.member-detail-left-column {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding: 0;
    margin: 0;
}

/* Academic Links Section */
.member-detail-links-section {
    margin: 0;
    padding-left: 0; /* Align with photo */
}

.member-detail-links-section .academic-links-title {
    font-size: 0.95rem !important;
    font-weight: 900 !important;
    color: #000000 !important;
    margin-bottom: 12px !important;
    font-family: "Source Sans Pro", sans-serif !important;
}

.academic-links-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.member-detail-links-section .academic-link-card {
    display: inline-block !important;
    padding: 0 !important;
    background: transparent !important;
    color: #000000 !important;
    text-decoration: none !important;
    font-weight: 900 !important;
    font-size: 0.9rem !important;
    font-family: "Source Sans Pro", sans-serif !important;
    transition: all 0.3s ease !important;
    position: relative !important;
    border: none !important;
    padding-left: 20px !important;
}

.member-detail-links-section .academic-link-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 100%;
    width: 0;
    background-color: #000000;
    transition: width 0.3s ease;
}

.member-detail-links-section .academic-link-card.verde::before {
    background-color: var(--color-primary-green);
}

.member-detail-links-section .academic-link-card.morada::before {
    background-color: var(--color-primary-purple);
}

.member-detail-links-section .academic-link-card:hover {
    transform: translateX(4px);
}

.member-detail-links-section .academic-link-card:hover::before {
    width: 2px;
}

.member-detail-links-section .academic-link-card.verde:hover {
    color: var(--color-primary-green);
}

.member-detail-links-section .academic-link-card.morada:hover {
    color: var(--color-primary-purple);
}

.member-detail-links-section .academic-link-card.both:hover {
    color: #000000;
}

/* Detail Content Wrapper */
.detail-content-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px 40px 40px;
}

/* Additional Member Detail Adjustments */

/* Add note icon styles */
.note-icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    background-color: #FFD700;
    border: 2px solid #000;
    border-radius: 2px;
    position: relative;
    margin-left: 8px;
    vertical-align: middle;
}

.note-icon::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    right: 4px;
    height: 2px;
    background: #000;
    box-shadow: 0 4px 0 #000, 0 8px 0 #000;
}

/* Adjust line info alignment */
.member-detail-line-info {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

/* Academic links with note icons */
.academic-link-card .link-text {
    display: flex;
    align-items: center;
    gap: 8px;
}

.academic-link-card .note-icon {
    margin-left: auto;
}

/* Ensure proper photo line overlap */
/* Duplicate removed - see line 4033 */

.member-detail-photo-v3 {
    position: relative;
    z-index: 0;
}


/* FINAL OVERRIDES FOR MEMBER DETAIL PAGE */
.member-detail-links-section .academic-link-card,
.member-detail-links-section .academic-link-card .link-text {
    color: #000000 \!important;
    font-weight: 900 \!important;
    font-family: "Source Sans Pro", sans-serif \!important;
    letter-spacing: -0.01em \!important;
}

.member-detail-links-section .academic-links-title {
    letter-spacing: -0.01em \!important;
}


/* =====================================================
   MEMBER DETAIL ACADEMIC LINKS V3 - COMPLETE REBUILD
   ===================================================== */

.detail-member-links-v3 {
    margin: 0 \!important;
    padding: 0 \!important;
}

.detail-member-links-title-v3 {
    font-size: 0.95rem \!important;
    font-weight: 900 \!important;
    color: #000000 \!important;
    margin: 0 0 12px 0 \!important;
    padding: 0 \!important;
    font-family: "Source Sans Pro", sans-serif \!important;
    letter-spacing: -0.01em \!important;
    line-height: 1.2 \!important;
}

.detail-member-links-list-v3 {
    display: flex \!important;
    flex-direction: column \!important;
    gap: 8px \!important;
    margin: 0 \!important;
    padding: 0 \!important;
}

.detail-member-link-v3 {
    display: block \!important;
    color: #000000 \!important;
    text-decoration: none \!important;
    font-weight: 900 \!important;
    font-size: 0.9rem \!important;
    font-family: "Source Sans Pro", sans-serif \!important;
    letter-spacing: -0.01em \!important;
    line-height: 1.2 \!important;
    padding: 0 0 0 20px \!important;
    margin: 0 \!important;
    position: relative \!important;
    transition: all 0.3s ease \!important;
    background: none \!important;
    border: none \!important;
}

.detail-member-link-v3::before {
    content: "" \!important;
    position: absolute \!important;
    left: 0 \!important;
    top: 50% \!important;
    transform: translateY(-50%) \!important;
    height: 100% \!important;
    width: 0 \!important;
    background-color: #000000 \!important;
    transition: width 0.3s ease \!important;
}

.detail-member-link-v3.verde::before {
    background-color: #50C878 \!important;
}

.detail-member-link-v3.morada::before {
    background-color: #9370DB \!important;
}

.detail-member-link-v3:hover {
    transform: translateX(4px) \!important;
    background: none \!important;
}

.detail-member-link-v3:hover::before {
    width: 2px \!important;
}

.detail-member-link-v3.verde:hover {
    color: #50C878 \!important;
}

.detail-member-link-v3.morada:hover {
    color: #9370DB \!important;
}

.detail-member-link-v3.both:hover {
    color: #000000 \!important;
}


/* FIX FOR ACADEMIC LINKS DISPLAY */
.detail-member-links-list-v3 {
    display: block \!important;
    width: 100% \!important;
}

.detail-member-link-v3 {
    display: block \!important;
    width: fit-content \!important;
    margin-bottom: 4px \!important;
}

.detail-member-links-v3 {
    width: 100% \!important;
    max-width: 300px \!important;
}


/* COMPLETE FIX FOR ACADEMIC LINKS - MAXIMUM SPECIFICITY */
body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 {
    margin: 0 \!important;
    padding: 0 \!important;
    width: 100% \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-title-v3 {
    font-size: 0.95rem \!important;
    font-weight: 900 \!important;
    color: #000000 \!important;
    margin: 0 0 12px 0 \!important;
    padding: 0 \!important;
    font-family: "Source Sans Pro", sans-serif \!important;
    letter-spacing: -0.01em \!important;
    line-height: 1.2 \!important;
    display: block \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-list-v3 {
    display: block \!important;
    margin: 0 \!important;
    padding: 0 \!important;
    width: 100% \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-list-v3 a.detail-member-link-v3 {
    display: block \!important;
    width: 100% \!important;
    color: #000000 \!important;
    text-decoration: none \!important;
    font-weight: 900 \!important;
    font-size: 0.9rem \!important;
    font-family: "Source Sans Pro", sans-serif \!important;
    letter-spacing: -0.01em \!important;
    line-height: 1.4 \!important;
    padding: 4px 0 4px 20px \!important;
    margin: 0 0 8px 0 \!important;
    position: relative \!important;
    transition: all 0.3s ease \!important;
    background: none \!important;
    border: none \!important;
    box-sizing: border-box \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-list-v3 a.detail-member-link-v3::before {
    content: "" \!important;
    position: absolute \!important;
    left: 0 \!important;
    top: 0 \!important;
    bottom: 0 \!important;
    width: 0 \!important;
    background-color: #000000 \!important;
    transition: width 0.3s ease \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-list-v3 a.detail-member-link-v3.verde::before {
    background-color: #50C878 \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-list-v3 a.detail-member-link-v3.morada::before {
    background-color: #9370DB \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-list-v3 a.detail-member-link-v3:hover {
    transform: translateX(4px) \!important;
    color: #000000 \!important;
    text-decoration: none \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-list-v3 a.detail-member-link-v3:hover::before {
    width: 2px \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-list-v3 a.detail-member-link-v3.verde:hover {
    color: #50C878 \!important;
}

body .detail-content-wrapper .member-detail-grid-v3 .member-detail-left-column .detail-member-links-v3 .detail-member-links-list-v3 a.detail-member-link-v3.morada:hover {
    color: #9370DB \!important;
}


/* RESET ALL LINK DEFAULTS FOR ACADEMIC LINKS */
.detail-member-links-v3 a,
.detail-member-links-v3 a:link,
.detail-member-links-v3 a:visited,
.detail-member-links-v3 a:hover,
.detail-member-links-v3 a:active {
    color: #000000 \!important;
    text-decoration: none \!important;
    display: block \!important;
    font-weight: 900 \!important;
}
