/*
Theme Name:       SulBiotec Custom Theme
Theme URI:        https://sulbiotec.com.br
Description:      Custom native theme for SulBiotec 2026, optimized for performance and clean architecture.
Version:          1.1.9
Author:           Junior Dagostim
Author URI:       https://sulbiotec.com.br
Text Domain:      sulbiotec-theme
*/

/* Local Google Fonts - Arimo */
/* latin-ext */
@font-face {
  font-family: 'Arimo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/arimo-p5smzzcdf9_t_10xxcf8ja.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Arimo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/arimo-p5smzzcdf9_t_10zxce.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Arimo';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/arimo-p5smzzcdf9_t_10xxcf8ja.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Arimo';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/arimo-p5smzzcdf9_t_10zxce.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Core Design System Tokens */
:root {
    /* Color Palette from Elementor Kit */
    --color-primary: #009347;      /* Verde */
    --color-secondary: #FDB92E;    /* Amarelo/Dourado */
    --color-text: #5D5E60;         /* Cinza Escuro */
    --color-accent: #2AABE2;       /* Azul */
    --color-white: #FFFFFF;        /* Branco */
    --color-background: #F8F9FA;   /* Cinza Claro */
    
    /* Layout Tokens */
    --container-width: 1200px;
    --font-primary: 'Arimo', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Reset and Base Styles */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html, body {
    max-width: 100%;
    overflow-x: hidden;
}

body {
    font-family: var(--font-primary);
    color: var(--color-text);
    background-color: var(--color-background);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

p {
    margin-bottom: 1.25rem;
}

p:last-child {
    margin-bottom: 0;
}


img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color 0.3s ease;
}

a:hover {
    color: var(--color-accent);
}

.container {
    width: 100%;
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 20px;
}

/* Header Top Bar */
.header-top-bar {
    background-color: var(--color-accent); /* Light blue #2AABE2 */
    padding: 8px 0;
    color: var(--color-white);
    font-size: 0.85rem;
}

.top-bar-container {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.social-icons-wrapper {
    display: flex;
    gap: 15px;
}

.social-icons-wrapper a {
    color: var(--color-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.social-icons-wrapper a:hover {
    color: var(--color-white);
    transform: scale(1.1);
}

.social-icons-wrapper svg {
    width: 17px;
    height: 17px;
}

/* Header Styles */
.site-header {
    background-color: var(--color-white);
    box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}

.header-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 25px 20px 15px;
}

.site-logo img {
    max-height: 65px;
    width: auto;
}

/* Main Navigation */
.nav-menu {
    display: flex;
    gap: 30px;
    list-style: none;
}

.nav-menu li {
    position: relative;
}

.nav-menu a {
    color: var(--color-secondary); /* Orange/Gold #FDB92E */
    font-weight: 700;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 8px 0;
    position: relative;
    display: inline-block;
    transition: color 0.3s ease;
}

.nav-menu a::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: 0;
    left: 0;
    background-color: var(--color-secondary);
    transition: width 0.3s ease;
}

.nav-menu a:hover::after,
.nav-menu .current-menu-item > a::after {
    width: 100%;
}

.nav-menu a:hover {
    color: var(--color-secondary);
}

/* Caret indicator for submenus */
.nav-menu .menu-item-has-children > a {
    padding-right: 15px;
}

.nav-menu .menu-item-has-children > a::before {
    content: '▾';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.75rem;
    color: var(--color-secondary);
}

/* Dropdown Menu (Submenus) */
.nav-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background-color: var(--color-white);
    border: 1px solid #eaeaea;
    border-radius: 6px;
    box-shadow: 0 5px 25px rgba(0,0,0,0.08);
    list-style: none;
    min-width: 250px;
    padding: 10px 0;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 999;
}

.nav-menu li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

/* Invisible bridge to prevent mouseleave on transition gap */
.nav-menu .sub-menu::before {
    content: '';
    position: absolute;
    top: -15px;
    left: 0;
    right: 0;
    height: 15px;
    background: transparent;
}

.nav-menu .sub-menu li {
    width: 100%;
}

.nav-menu .sub-menu a {
    display: block;
    padding: 10px 20px;
    font-size: 0.9rem;
    color: var(--color-text);
    font-weight: 500;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.nav-menu .sub-menu a::after {
    display: none; /* No underlines in dropdown list */
}

.nav-menu .sub-menu a:hover {
    background-color: #f5f5f5;
    color: var(--color-primary);
}

/* Mobile Toggler */
.menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 30px;
    height: 21px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1001;
}

.menu-toggle .icon-bar {
    width: 100%;
    height: 3px;
    background-color: var(--color-text);
    border-radius: 2px;
    transition: all 0.3s ease;
}

/* Responsive Navigation Breakpoint */
@media (max-width: 1024px) {
    body.mobile-menu-active {
        overflow: hidden;
    }

    .header-top-bar {
        display: none;
    }

    .header-container {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        padding: 15px 20px;
    }

    .site-logo img {
        max-height: 45px;
    }

    .menu-toggle {
        display: flex;
    }

    .main-navigation.toggled .menu-toggle {
        position: fixed;
        right: 20px;
        top: 27px;
        z-index: 1002;
    }

    body.admin-bar .main-navigation.toggled .menu-toggle {
        top: calc(27px + 32px);
    }
    @media (max-width: 782px) {
        body.admin-bar .main-navigation.toggled .menu-toggle {
            top: calc(27px + 46px);
        }
    }

    /* Transform menu-toggle to X when toggled */
    .main-navigation.toggled .menu-toggle .icon-bar:nth-child(1) {
        transform: translateY(9px) rotate(45deg);
    }
    .main-navigation.toggled .menu-toggle .icon-bar:nth-child(2) {
        opacity: 0;
    }
    .main-navigation.toggled .menu-toggle .icon-bar:nth-child(3) {
        transform: translateY(-9px) rotate(-45deg);
    }
    
    .main-navigation {
        display: block;
        width: auto;
    }
    
    .nav-menu {
        display: none;
        flex-direction: column;
        gap: 15px;
        background-color: var(--color-white);
        box-shadow: 0 4px 10px rgba(0,0,0,0.08);
        border-top: 1px solid #eee;
        padding: 20px;
        margin-top: 15px;
        width: 100%;
        position: absolute;
        top: 100%;
        left: 0;
        z-index: 1001;
    }
    
    .main-navigation.toggled .nav-menu {
        display: flex;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        z-index: 1001;
        background-color: var(--color-white);
        box-shadow: none;
        border-top: none;
        padding: 80px 20px 20px 20px;
        margin-top: 0;
        overflow-y: auto;
    }

    body.admin-bar .main-navigation.toggled .nav-menu {
        top: 32px;
        height: calc(100vh - 32px);
    }
    @media (max-width: 782px) {
        body.admin-bar .main-navigation.toggled .nav-menu {
            top: 46px;
            height: calc(100vh - 46px);
        }
    }

    .nav-menu .menu-item-has-children > a {
        padding-right: 0;
    }

    .nav-menu .menu-item-has-children > a::before {
        display: none;
    }

    /* Mobile & Tablet submenu list inline styling */
    .nav-menu .sub-menu {
        position: static !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        box-shadow: none !important;
        border: none !important;
        padding: 5px 0 5px 15px !important;
        width: 100% !important;
        display: block !important;
        transition: none !important;
    }
}

/* Footer Styles */
.site-footer {
    background-color: #ffffff !important; /* Cor branca de fundo */
    color: var(--color-text);
    padding: 50px 0 30px;
}

/* Newsletter Section Container */
.footer-newsletter-section {
    text-align: center;
    margin-bottom: 40px;
    padding-top: 40px;
    padding-bottom: 40px;
    border-top: 5px solid var(--color-secondary); /* Borda amarela superior */
    border-bottom: 5px solid var(--color-secondary); /* Borda amarela inferior */
}

.footer-newsletter-section h3 {
    color: var(--color-secondary);
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 10px;
}

.footer-newsletter-section p {
    color: #666;
    font-size: 1rem;
    margin-bottom: 25px;
}

/* Form Styling - Universal (Native & JetFormBuilder) */
.footer-newsletter-section form.newsletter-form,
.footer-newsletter-section form.jet-form-builder,
.footer-newsletter-section .jet-form-builder {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 15px !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 25px auto 0 !important;
}

/* Force JetFormBuilder wrapper rows to display inline and align */
.footer-newsletter-section .jet-form-builder__row,
.footer-newsletter-section .jet-form-builder__field-template,
.footer-newsletter-section .jet-form-builder__action-button {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
}

/* Input Fields Styling (Native & JetFormBuilder) */
.footer-newsletter-section form.newsletter-form input[type="email"],
.footer-newsletter-section .jet-form-builder input[type="email"],
.footer-newsletter-section .jet-form-builder input[type="text"],
.footer-newsletter-section .jet-form-builder__field-template input {
    position: static !important;
    display: inline-block !important;
    width: 350px !important;
    height: 45px !important;
    padding: 0 15px !important;
    margin: 0 !important;
    border: 1px solid #cccccc !important;
    border-radius: 4px !important;
    font-size: 0.95rem !important;
    color: #333333 !important;
    background-color: #ffffff !important;
    outline: none !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
}

.footer-newsletter-section form.newsletter-form input[type="email"]:focus,
.footer-newsletter-section .jet-form-builder input:focus {
    border-color: var(--color-primary) !important;
}

/* Submit Buttons Styling (Native & JetFormBuilder) */
.footer-newsletter-section form.newsletter-form button[type="submit"],
.footer-newsletter-section form.jet-form-builder button.jet-form-builder__submit,
.footer-newsletter-section .jet-form-builder__submit,
.footer-newsletter-section .wp-block-jet-form-builder-submit,
.footer-newsletter-section .jet-form-builder__action-button button {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 180px !important;
    height: 45px !important;
    background-color: #FDB92E !important; /* Amarelo sólido */
    color: #ffffff !important; /* Texto branco */
    border: none !important;
    border-radius: 4px !important;
    font-weight: bold !important;
    font-size: 0.95rem !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    transition: background-color 0.3s ease !important;
}

.footer-newsletter-section button[type="submit"]:hover,
.footer-newsletter-section .jet-form-builder__submit:hover,
.footer-newsletter-section .wp-block-jet-form-builder-submit:hover {
    background-color: #e0a324 !important;
}

/* Main Footer Area (Logo + Button) */
.footer-main-area {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 30px;
    margin-bottom: 40px;
}

.footer-action-box {
    text-align: center;
    max-width: 600px;
}

.footer-action-box p {
    color: var(--color-primary);
    font-weight: bold;
    font-size: 1.1rem;
    line-height: 1.3;
    margin-bottom: 15px;
}

.btn-footer-action {
    display: inline-block;
    background-color: var(--color-primary);
    color: var(--color-white);
    padding: 12px 28px;
    border-radius: 4px;
    font-weight: bold;
    font-size: 0.95rem;
    transition: background-color 0.3s ease;
}

.btn-footer-action:hover {
    background-color: #007739;
    color: var(--color-white);
}

/* Copyright Row */
.footer-copyright-row {
    text-align: center;
    font-size: 0.85rem;
    color: #888888;
    border-top: 1px solid #eeeeee;
    padding-top: 25px;
}

.developer-logo {
    display: block;
    margin: 15px auto 0;
    max-height: 35px;
    width: auto;
}

/* Mobile Adjustments */
@media (max-width: 768px) {
    .footer-newsletter-section form.newsletter-form,
    .footer-newsletter-section form.jet-form-builder,
    .footer-newsletter-section .jet-form-builder,
    .footer-newsletter-section .jet-form-builder__row {
        flex-direction: column !important;
        width: 100% !important;
        gap: 15px !important;
    }
    
    .footer-newsletter-section form.newsletter-form input[type="email"],
    .footer-newsletter-section .jet-form-builder input[type="email"],
    .footer-newsletter-section .jet-form-builder input[type="text"],
    .footer-newsletter-section .jet-form-builder__field-template input,
    .footer-newsletter-section .jet-form-builder__field-template {
        width: 100% !important;
        max-width: 100% !important;
    }
    
    .footer-newsletter-section form.newsletter-form button[type="submit"],
    .footer-newsletter-section form.jet-form-builder button.jet-form-builder__submit,
    .footer-newsletter-section .jet-form-builder__submit,
    .footer-newsletter-section .wp-block-jet-form-builder-submit,
    .footer-newsletter-section .jet-form-builder__action-button button,
    .footer-newsletter-section .jet-form-builder__action-button {
        width: 100% !important;
        max-width: 100% !important;
    }
    
    .footer-main-area {
        flex-direction: column;
        text-align: center;
    }
    
    .footer-action-box {
        text-align: center;
        margin: 0 auto;
    }
}

/* ==========================================================================
   Homepage (front-page.php) Styles
   ========================================================================== */

/* Section 1: Hero Banner Area */
.hero-banner {
    background-color: var(--color-background);
    padding: 90px 0;
    text-align: center;
    border-bottom: 1px solid #eaeaea;
}

.hero-title {
    font-size: 2.75rem;
    color: var(--color-primary);
    margin-bottom: 20px;
    font-weight: 800;
    line-height: 1.2;
}

.hero-description {
    font-size: 1.25rem;
    color: var(--color-text);
    max-width: 800px;
    margin: 0 auto 35px;
    line-height: 1.6;
}

.btn-hero {
    background-color: var(--color-primary);
    color: var(--color-white);
    padding: 13px 35px;
    border-radius: 4px;
    font-weight: bold;
    font-size: 1rem;
    display: inline-block;
    transition: background-color 0.3s ease, transform 0.2s ease;
}

.btn-hero:hover {
    background-color: #007739;
    color: var(--color-white);
    transform: translateY(-2px);
}

/* General Sections Layout */
.section-title {
    text-align: center;
    font-size: 2rem;
    color: var(--color-text);
    margin-bottom: 45px;
    font-weight: 700;
    position: relative;
    padding-bottom: 15px;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 4px;
    background-color: var(--color-secondary);
    border-radius: 2px;
}

.partners-section {
    padding: 70px 0;
    background-color: var(--color-white);
}

.academic-section {
    padding: 70px 0;
    background-color: var(--color-background);
    border-top: 1px solid #eaeaea;
}

/* Academic Institutions Slider */
.academic-slide-item {
    background: #ffffff;
    border: 1px solid #eeeeee;
    border-radius: 6px;
    padding: 0;
    width: 180px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 8px rgba(0,0,0,0.02);
    flex-shrink: 0;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.academic-slide-item:hover {
    transform: translateY(-4px);
    border-color: var(--color-primary);
    box-shadow: 0 8px 18px rgba(0,0,0,0.06);
}

.academic-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.academic-logo-img {
    max-height: 95px;
    max-width: 90%;
    object-fit: contain;
}

.academic-fallback-text {
    font-weight: 600;
    font-size: 0.9rem;
    color: #666666;
    text-align: center;
}

/* Logo Slider Marquee (Empresas Associadas) */
.logo-slider-container {
    width: 100%;
    overflow: hidden;
    position: relative;
    padding: 20px 0;
}

/* Premium gradient fades on the slider edges */
.logo-slider-container::before,
.logo-slider-container::after {
    content: '';
    position: absolute;
    top: 0;
    width: 100px;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

.logo-slider-container::before {
    left: 0;
    background: linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0));
}

.logo-slider-container::after {
    right: 0;
    background: linear-gradient(to left, rgba(255,255,255,1), rgba(255,255,255,0));
}

/* Adjust gradient fade color for academic section (gray background) */
.academic-section .logo-slider-container::before {
    background: linear-gradient(to right, rgba(248,249,250,1), rgba(248,249,250,0));
}
.academic-section .logo-slider-container::after {
    background: linear-gradient(to left, rgba(248,249,250,1), rgba(248,249,250,0));
}


.logo-slider-track {
    display: flex;
    gap: 30px;
    width: max-content;
    animation: marqueeScroll 90s linear infinite;
}

.logo-slider-container:hover .logo-slider-track {
    animation-play-state: paused; /* Pause marquee on hover */
}

.partner-slide-item {
    background: #ffffff;
    border: 1px solid #eeeeee;
    border-radius: 6px;
    padding: 0;
    width: 180px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 8px rgba(0,0,0,0.02);
    flex-shrink: 0;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.partner-slide-item:hover {
    transform: translateY(-4px);
    border-color: var(--color-primary);
    box-shadow: 0 8px 18px rgba(0,0,0,0.06);
}

.partner-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.partner-logo-img {
    max-height: 95px;
    max-width: 90%;
    object-fit: contain;
}

.partner-fallback-text {
    font-weight: 600;
    font-size: 0.9rem;
    color: #666666;
    text-align: center;
}

@keyframes marqueeScroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-50% - 15px)); /* Loop halfway for infinite effect */
    }
}

/* "Ver todas" Button */
.btn-partners-view-all {
    display: inline-block;
    background-color: var(--color-primary);
    color: var(--color-white);
    padding: 11px 30px;
    border-radius: 4px;
    font-weight: bold;
    font-size: 0.95rem;
    transition: background-color 0.3s ease, transform 0.2s ease;
}

.btn-partners-view-all:hover {
    background-color: #007739;
    color: var(--color-white);
    transform: translateY(-2px);
}

/* Section 4: Blog / Notícias */
.news-section {
    padding: 70px 0;
    background-color: var(--color-white);
    border-top: 1px solid #eaeaea;
}

.news-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}

.news-card {
    display: flex;
    gap: 20px;
    background: #ffffff;
    border: 1px solid #eaeaea;
    border-radius: 8px;
    overflow: hidden;
    padding: 20px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.02);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.news-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.06);
    border-color: var(--color-primary);
}

.news-thumb {
    flex-shrink: 0;
    width: 160px;
    height: 130px;
    overflow: hidden;
    border-radius: 6px;
}

.news-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.news-card:hover .news-thumb-img {
    transform: scale(1.05);
}

.news-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-grow: 1;
}

.news-card-title {
    font-size: 1.2rem;
    margin-bottom: 8px;
    line-height: 1.35;
}

.news-card-title a {
    color: var(--color-text);
    font-weight: 700;
    transition: color 0.3s ease;
}

.news-card-title a:hover {
    color: var(--color-primary);
}

.news-meta {
    font-size: 0.8rem;
    color: #999999;
    margin-bottom: 10px;
}

.news-edition-tag-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    background-color: #f1f5f9;
    color: var(--color-secondary);
    padding: 3px 8px;
    border-radius: 4px;
    margin-right: 6px;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
    transition: all 0.2s ease;
}
.news-edition-tag-badge a {
    color: inherit;
    text-decoration: none;
}
.news-edition-tag-badge:hover {
    background-color: var(--color-secondary);
    color: #ffffff;
}

.news-category-tag-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    background-color: #f1f5f9;
    color: var(--color-primary);
    padding: 3px 8px;
    border-radius: 4px;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
    transition: all 0.2s ease;
}
.news-category-tag-badge a {
    color: inherit;
    text-decoration: none;
}
.news-category-tag-badge:hover {
    background-color: var(--color-primary);
    color: #ffffff;
}

.news-excerpt {
    font-size: 0.9rem;
    color: #666666;
    line-height: 1.5;
}

.news-link {
    font-weight: bold;
    color: var(--color-primary);
    font-size: 0.85rem;
    margin-top: 10px;
    display: inline-block;
    align-self: flex-start;
    transition: color 0.3s ease, transform 0.2s ease;
}

.news-link:hover {
    color: var(--color-accent);
    transform: translateX(4px);
}

.empty-section-msg {
    text-align: center;
    color: #888888;
    font-style: italic;
}

/* Partners and Academic Archive Grids */
.partners-grid,
.academic-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 30px;
    justify-content: center;
    justify-items: center;
    width: 100%;
    margin: 0 auto;
}

.partners-grid .partner-slide-item,
.academic-grid .academic-slide-item {
    width: 100%;
    max-width: 180px;
}

/* Responsive Overrides */
@media (max-width: 992px) {
    .partners-grid, 
    .academic-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
    
    .news-grid {
        gap: 20px;
    }
}

@media (max-width: 768px) {
    .hero-banner {
        padding: 60px 0;
    }
    
    .hero-title {
        font-size: 2.25rem;
    }
    
    .hero-description {
        font-size: 1.1rem;
        margin-bottom: 25px;
    }
    
    .news-grid {
        grid-template-columns: 1fr;
    }
    
    .section-title {
        font-size: 1.75rem;
        margin-bottom: 35px;
    }
}

@media (max-width: 480px) {
    .partners-grid, 
    .academic-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }
    
    .news-card {
        flex-direction: column;
        padding: 15px;
    }
    
    .news-thumb {
        width: 100%;
        height: 160px;
    }
}

/* ==========================================================================
   Laboratories CPT (archive-labs.php) Styles
   ========================================================================== */

/* Layout Flex Columns */
.labs-layout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.labs-sidebar {
    width: 300px;
    flex-shrink: 0;
    background: #ffffff;
    padding: 25px;
    border-radius: 8px;
    border: 1px solid #eaeaea;
    position: sticky;
    top: 100px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.01);
}

.labs-list-container {
    flex-grow: 1;
}

.labs-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

/* Card Styling */
.lab-card {
    background: #ffffff;
    border: 1px solid #eaeaea;
    border-radius: 8px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 3px 10px rgba(0,0,0,0.01);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.lab-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.05);
    border-color: var(--color-primary);
}

.lab-institution {
    font-size: 0.75rem;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--color-accent);
    letter-spacing: 0.5px;
    display: block;
    margin-bottom: 8px;
}

.lab-excerpt {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.5;
    margin-bottom: 20px;
}

.lab-card-footer {
    border-top: 1px solid #f5f5f5;
    padding-top: 15px;
    margin-top: 15px;
}

.lab-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 15px;
}

.lab-tags span {
    background-color: #f0fdf4;
    color: var(--color-primary);
    font-size: 0.75rem;
    padding: 4px 10px;
    border-radius: 12px;
    font-weight: 600;
}

.lab-contact {
    font-size: 0.85rem;
    color: #666;
    display: flex;
    flex-direction: column;
    gap: 5px;
    background-color: #fafafa;
    padding: 12px;
    border-radius: 4px;
}

/* Pagination */
.labs-pagination a, 
.labs-pagination span {
    display: inline-block;
    padding: 8px 16px;
    margin: 0 3px;
    border-radius: 4px;
    border: 1px solid #eaeaea;
    color: var(--color-text);
    font-weight: 600;
    transition: all 0.3s ease;
}

.labs-pagination a:hover {
    background-color: var(--color-primary);
    color: #ffffff;
    border-color: var(--color-primary);
}

.labs-pagination .current {
    background-color: var(--color-primary);
    color: #ffffff;
    border-color: var(--color-primary);
}

/* Responsive Breakpoints for Labs */
@media (max-width: 992px) {
    .labs-grid {
        grid-template-columns: 1fr; /* Single column for cards in smaller screens */
    }
}

@media (max-width: 768px) {
    .labs-layout {
        flex-direction: column; /* Stack sidebar above listing */
        gap: 30px;
    }
    
    .labs-sidebar {
        width: 100%;
        position: static; /* Remove sticky on mobile */
    }
}

/* ==========================================================================
   Homepage Slider (banners-home CPT) Styles
   ========================================================================== */

.hero-slider-section {
    position: relative;
    overflow: hidden;
    width: 100%;
    background-color: #000000;
}

/* Visibility Rules */
@media (min-width: 769px) {
    .slider-desktop { display: block; }
    .slider-mobile { display: none; }
}

@media (max-width: 768px) {
    .slider-desktop { display: none; }
    .slider-desktop.show-on-mobile { display: block !important; }
    .slider-mobile { display: block; }
}

.slider-container {
    position: relative;
    width: 100%;
    height: 620px;
    overflow: hidden;
}

.slider-wrapper {
    display: flex;
    width: 100%;
    height: 100%;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}

.slide-item {
    min-width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Overlay to darken background image and guarantee text contrast */
.slide-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--overlay-color, rgba(0, 0, 0, 0.45));
    z-index: 2;
}

.slide-click-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
    cursor: pointer;
}

.slide-content-wrap {
    position: relative;
    z-index: 10;
    width: 100%;
    padding: 40px 0;
    color: var(--color-white);
}

.slide-text-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    max-width: 900px;
}

.slide-title {
    font-size: 2.8rem;
    color: var(--color-white);
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
    margin-bottom: 20px;
    font-weight: 700;
    line-height: 1.2;
}

.slide-desc {
    font-size: 1.15rem;
    color: var(--color-white);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
    margin-bottom: 30px;
    max-width: 800px;
    line-height: 1.6;
}

/* White Outlined Button matching screenshots */
.btn-slide-outline {
    background-color: transparent;
    color: var(--color-white);
    border: 1.5px solid var(--color-white);
    padding: 10px 30px;
    border-radius: 4px;
    font-weight: bold;
    font-size: 0.95rem;
    display: inline-block;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
    cursor: pointer;
}

.btn-slide-outline:hover {
    background-color: var(--color-white);
    color: #111111;
    border-color: var(--color-white);
}

/* Pagination Dots */
.slider-dots {
    position: absolute;
    bottom: 25px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 20;
}

.slider-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: background 0.3s ease, width 0.3s ease, border-radius 0.3s ease;
}

.slider-dot.active {
    background: var(--color-secondary); /* Gold active dot */
    width: 25px;
    border-radius: 5px;
}

/* Mobile & Tablet Adjustments for slider */
@media (max-width: 768px) {
    .slider-container {
        height: 480px;
    }
    
    .slide-title {
        font-size: 1.8rem;
    }
    
    .slide-desc {
        font-size: 0.95rem;
        margin-bottom: 20px;
        line-height: 1.5;
    }

    .btn-slide-outline {
        padding: 8px 24px;
        font-size: 0.85rem;
    }

    /* Mobile Submenu Styling (Nested list indent) */
    .nav-menu .sub-menu {
        position: static;
        transform: none;
        opacity: 1;
        visibility: visible;
        box-shadow: none;
        border: none;
        border-left: 2px solid var(--color-secondary);
        background-color: transparent;
        padding: 5px 0 5px 15px;
        margin-top: 5px;
        margin-left: 10px;
        min-width: unset;
        display: block;
    }
    
    .nav-menu .sub-menu a {
        padding: 8px 10px;
        font-size: 0.95rem;
    }

    .nav-menu li:hover > .sub-menu {
        transform: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        transition: none !important;
    }
}

/* ==========================================================================
   Homepage: About & Video Section
   ========================================================================== */
.about-video-section {
    padding: 80px 0;
    background-color: var(--color-background);
    border-bottom: 1px solid #eaeaea;
}

.about-video-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 50px;
    align-items: center;
}

.video-responsive-wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
    height: 0;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    background-color: #000;
}

.video-responsive-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.about-text-col {
    display: flex;
    flex-direction: column;
}

.about-section-title {
    font-size: 2.2rem;
    color: var(--color-primary);
    margin-bottom: 25px;
    font-weight: 700;
    position: relative;
    padding-bottom: 12px;
}

.about-section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 4px;
    background-color: var(--color-secondary);
    border-radius: 2px;
}

.about-summary-text {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--color-text);
    margin-bottom: 20px;
}

.about-btn-wrap {
    margin-top: 15px;
}

.btn-about-more {
    display: inline-block;
    background-color: var(--color-primary);
    color: var(--color-white);
    padding: 12px 32px;
    border-radius: 4px;
    font-weight: bold;
    font-size: 0.95rem;
    transition: background-color 0.3s ease, transform 0.2s ease;
}

.btn-about-more:hover {
    background-color: #007739;
    color: var(--color-white);
    transform: translateY(-2px);
}

@media (max-width: 991px) {
    .about-video-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

/* ==========================================================================
   Events & Innovation Section (Archive and Single Layouts)
   ========================================================================== */
.events-archive-header {
    background: linear-gradient(135deg, var(--color-primary) 0%, #007739 100%);
    padding: 60px 0;
    color: var(--color-white);
    text-align: center;
}

.events-archive-header h1 {
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: 15px;
}

.events-archive-header p {
    font-size: 1.15rem;
    opacity: 0.9;
    max-width: 700px;
    margin: 0 auto;
}

.events-layout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.events-sidebar {
    width: 280px;
    flex-shrink: 0;
    background: var(--color-white);
    padding: 25px;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.03);
    border: 1px solid #eaeaea;
    position: sticky;
    top: 100px;
}

.events-sidebar h2 {
    font-size: 1.2rem;
    color: var(--color-primary);
    margin-bottom: 20px;
    font-weight: 700;
    border-bottom: 2px solid #eaeaea;
    padding-bottom: 10px;
}

.events-filter-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.filter-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.filter-group label {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--color-text);
}

.filter-group input[type="text"],
.filter-group select {
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    outline: none;
    font-family: var(--font-primary);
    font-size: 0.9rem;
    width: 100%;
}

.filter-group input[type="text"]:focus,
.filter-group select:focus {
    border-color: var(--color-primary);
}

.btn-filter {
    background-color: var(--color-primary);
    color: var(--color-white);
    border: none;
    padding: 11px;
    border-radius: 4px;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    transition: background-color 0.2s ease;
}

.btn-filter:hover {
    background-color: #007739;
}

.btn-clear {
    text-align: center;
    font-size: 0.85rem;
    color: #888;
    text-decoration: underline;
    margin-top: 5px;
}

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

.events-main-content {
    flex-grow: 1;
}

.events-section {
    margin-bottom: 40px;
}

.section-title {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 30px;
    color: var(--color-text);
}

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

.event-card {
    background: var(--color-white);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.03);
    border: 1px solid #eaeaea;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}

.event-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

.event-card-thumbnail {
    position: relative;
    height: 200px;
    background-color: #ffffff;
    padding: 30px;
    border-bottom: 1px solid #f0f0f0;
    overflow: hidden;
}

.event-card-thumbnail a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.event-card-thumbnail img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: transform 0.3s ease;
}

.event-card:hover .event-card-thumbnail img {
    transform: scale(1.05);
}

.event-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    padding: 5px 12px;
    font-size: 0.75rem;
    font-weight: 700;
    border-radius: 20px;
    color: var(--color-white);
    z-index: 10;
}

.badge-online {
    background-color: var(--color-accent);
}

.badge-presencial {
    background-color: var(--color-primary);
}

.past-badge {
    display: inline-block;
    padding: 3px 10px;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 12px;
    background-color: #e5e5e5;
    color: #666;
}

.event-card-content {
    padding: 25px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.event-card-meta {
    display: flex;
    gap: 15px;
    font-size: 0.8rem;
    color: #888;
    margin-bottom: 12px;
    align-items: center;
}

.event-card-meta svg {
    width: 13px;
    height: 13px;
    vertical-align: middle;
    margin-right: 3px;
}

.event-card-title {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 15px;
}

.event-card-title a {
    color: var(--color-text);
}

.event-card-title a:hover {
    color: var(--color-primary);
}

.event-card-location {
    font-size: 0.85rem;
    color: #666;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.event-card-location svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    color: #999;
}

.event-card-footer {
    margin-top: auto;
    border-top: 1px solid #f0f0f0;
    padding-top: 15px;
}

.btn-more {
    display: inline-block;
    color: var(--color-primary);
    font-weight: 700;
    font-size: 0.9rem;
    transition: color 0.2s ease;
}

.btn-more:hover {
    color: var(--color-accent);
}

.no-events-msg {
    color: #888;
    font-style: italic;
}

/* ==========================================================================
   Single Event View Styles
   ========================================================================== */
.event-single-header {
    background: #0f2c1b;
    padding: 60px 0;
    color: var(--color-white);
    border-bottom: 4px solid var(--color-secondary);
}

.event-single-header .event-category {
    font-size: 0.85rem;
    text-transform: uppercase;
    color: var(--color-secondary);
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.event-single-header .event-title {
    font-size: 2.3rem;
    font-weight: 800;
    line-height: 1.3;
}

.event-single-header .event-subtitle {
    margin-top: 15px;
    font-size: 1.15rem;
    opacity: 0.85;
    font-weight: 400;
}

.event-single-layout {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 40px;
    align-items: flex-start;
}

.event-main-column {
    background-color: var(--color-white);
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.02);
    border: 1px solid #eaeaea;
}

.detail-section-title {
    font-size: 1.5rem;
    color: var(--color-primary);
    margin-bottom: 25px;
    font-weight: 700;
    border-bottom: 2px solid #f0f0f0;
    padding-bottom: 10px;
}

.event-description {
    color: var(--color-text);
    font-size: 1.05rem;
    line-height: 1.8;
}

.event-description p {
    margin-bottom: 20px;
}

.event-description p strong {
    color: var(--color-text);
}

/* Schedule / Agenda Styling */
.schedule-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    border-bottom: 1px solid #eee;
    padding-bottom: 12px;
}

.schedule-tabs .tab-btn {
    background: none;
    border: none;
    font-size: 1.05rem;
    font-weight: 700;
    color: #999;
    padding: 8px 16px;
    cursor: pointer;
    position: relative;
    transition: color 0.2s ease;
}

.schedule-tabs .tab-btn.active {
    color: var(--color-primary);
}

.schedule-tabs .tab-btn.active::after {
    content: '';
    position: absolute;
    bottom: -13px;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: var(--color-primary);
}

.schedule-tab-content {
    display: none;
}

.schedule-tab-content.active {
    display: block;
}

.timeline {
    position: relative;
    padding-left: 30px;
}

.timeline::before {
    content: '';
    position: absolute;
    left: 8px;
    top: 5px;
    bottom: 5px;
    width: 2px;
    background-color: #eee;
}

.timeline-item {
    position: relative;
    margin-bottom: 30px;
}

.timeline-item:last-child {
    margin-bottom: 0;
}

.timeline-item::before {
    content: '';
    position: absolute;
    left: -26px;
    top: 6px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: var(--color-secondary);
    border: 2px solid var(--color-white);
    box-shadow: 0 0 0 2px var(--color-secondary);
    z-index: 5;
}

.timeline-time {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 5px;
}

.timeline-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 8px;
}

.timeline-desc {
    font-size: 0.95rem;
    color: #666;
    margin-bottom: 12px;
}

.timeline-speakers {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.speaker-pill {
    display: inline-flex;
    align-items: center;
    background: #f5f5f5;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-text);
    border: 1px solid #e0e0e0;
}

.speaker-avatar {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 6px;
}

/* Ver resumo — accordion button */
.timeline-resumo-wrap {
    margin-top: 12px;
    margin-bottom: 8px;
}

.timeline-resumo-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f0f7f4;
    border: 1px solid rgba(26, 94, 58, 0.2);
    color: var(--color-primary, #1a5e3a);
    border-radius: 20px;
    padding: 6px 16px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(26, 94, 58, 0.05);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-resumo-btn:hover {
    background: var(--color-primary, #1a5e3a);
    color: #fff;
    border-color: var(--color-primary, #1a5e3a);
    box-shadow: 0 4px 10px rgba(26, 94, 58, 0.2);
    transform: translateY(-1px);
}

.timeline-resumo-btn[aria-expanded="true"] {
    background: var(--color-primary, #1a5e3a);
    color: #fff;
    border-color: var(--color-primary, #1a5e3a);
    box-shadow: none;
    transform: none;
}

.resumo-btn-icon {
    display: inline-block;
    transition: transform 0.25s ease;
}

.timeline-resumo-btn[aria-expanded="true"] .resumo-btn-icon {
    transform: rotate(90deg);
}

.timeline-resumo-content {
    margin-top: 14px;
    padding: 16px 20px;
    background: #fdfdfd;
    border: 1px solid #eef2f5;
    border-left: 4px solid var(--color-primary, #1a5e3a);
    border-radius: 4px 8px 8px 4px;
    font-size: 0.92rem;
    line-height: 1.75;
    color: #334155;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.01), 0 4px 12px rgba(0,0,0,0.02);
}

/* Sponsors styling */
.sponsors-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 25px;
    align-items: center;
}

.sponsor-logo-card {
    background: var(--color-white);
    border: 1px solid #e2e8f0;
    padding: 12px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    height: auto;
    box-shadow: 0 4px 12px rgba(0,0,0,0.03);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sponsor-logo-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.08);
    border-color: var(--color-primary);
}

.sponsor-logo-img {
    max-height: 85%;
    max-width: 85%;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Sidebar Column & CTA Card */
.event-info-card {
    background-color: var(--color-white);
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.03);
    border: 1px solid #eaeaea;
    overflow: hidden;
    position: sticky;
    top: 100px;
    padding: 30px;
}

.event-sidebar-thumbnail {
    margin: -30px -30px 25px;
    background-color: #ffffff;
    padding: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #f0f0f0;
}

.event-sidebar-thumbnail img {
    max-width: 100%;
    max-height: 400px;
    width: auto;
    height: auto;
    display: block;
}

.event-sidebar-meta-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.meta-item {
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.meta-icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background-color: #f0f7f3;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    flex-shrink: 0;
}

.meta-icon svg {
    width: 18px;
    height: 18px;
}

.meta-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.95rem;
}

.meta-text strong {
    color: var(--color-text);
    font-weight: 700;
}

.meta-text span {
    color: #666;
}

.btn-event-cta {
    display: block;
    width: 100%;
    padding: 13px;
    text-align: center;
    border-radius: 4px;
    font-weight: 700;
    font-size: 1rem;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.primary-cta {
    background-color: var(--color-secondary);
    color: #222;
}

.primary-cta:hover {
    background-color: #e5a722;
    color: #222;
    transform: translateY(-2px);
}

.secondary-cta {
    background-color: var(--color-primary);
    color: var(--color-white);
}

.secondary-cta:hover {
    background-color: #007739;
    color: var(--color-white);
    transform: translateY(-2px);
}

/* ==========================================================================
   Responsive Rules
   ========================================================================== */
@media (max-width: 991px) {
    .events-layout {
        flex-direction: column;
        gap: 30px;
    }
    
    .events-sidebar {
        width: 100%;
        position: relative;
        top: 0;
    }
    
    .event-single-layout {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .event-main-column {
        order: 2;
    }
    
    .event-sidebar-column {
        order: 1;
    }
    
    .event-info-card {
        position: relative;
        top: 0;
    }
}

@media (max-width: 767px) {
    .events-archive-header h1 {
        font-size: 2rem;
    }
    
    .event-single-header .event-title {
        font-size: 1.8rem;
    }
    
    .event-main-column {
        padding: 25px;
    }
    
    .timeline {
        padding-left: 20px;
    }
    
    .timeline::before {
        left: 5px;
    }
    
    .timeline-item::before {
        left: -19px;
    }
}

/* Pagination Styling */
.events-pagination {
    margin-top: 50px;
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

.events-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    color: #4a5568;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
    background-color: var(--color-white);
}

.events-pagination a.page-numbers:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
    background-color: #f0f7f3;
    transform: translateY(-1px);
}

.events-pagination .page-numbers.current {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
    box-shadow: 0 4px 12px rgba(45, 168, 79, 0.25);
}

.events-pagination .page-numbers.dots {
    border-color: transparent;
    background-color: transparent;
    cursor: default;
}

/* ==========================================================================
   Speakers / Palestrantes CPT Styling
   ========================================================================== */

/* Layout & Grid Responsive */
@media (max-width: 991px) {
    .speakers-layout {
        flex-direction: column;
        align-items: stretch !important;
    }
    .speakers-sidebar {
        width: 100% !important;
        position: relative !important;
        top: 0 !important;
        margin-bottom: 30px;
    }
}

@media (max-width: 850px) {
    .speakers-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
}

@media (max-width: 550px) {
    .speakers-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
}

/* Speaker Cards Hover & Animation */
.speaker-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.08) !important;
    border-color: var(--color-primary) !important;
}

.speaker-card:hover .speaker-card-avatar-wrapper {
    border-color: var(--color-primary) !important;
}

.speaker-card:hover .speaker-card-img {
    transform: scale(1.08);
}

.speaker-card:hover .speaker-card-name {
    color: var(--color-primary) !important;
}

/* Pagination Styling */
.speakers-pagination {
    margin-top: 50px;
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

.speakers-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    color: #4a5568;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
    background-color: var(--color-white);
}

.speakers-pagination a.page-numbers:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
    background-color: #f0f7f3;
    transform: translateY(-1px);
}

.speakers-pagination .page-numbers.current {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
    box-shadow: 0 4px 12px rgba(45, 168, 79, 0.25);
}

.speakers-pagination .page-numbers.dots {
    border-color: transparent;
    background-color: transparent;
    cursor: default;
}

/* Speaker Single Detail Responsive Styling */
@media (max-width: 991px) {
    .speaker-detail-layout {
        flex-direction: column;
        align-items: stretch !important;
    }
    
    .speaker-sidebar {
        width: 100% !important;
        box-sizing: border-box;
    }
}

.speaker-back-link a:hover {
    color: var(--color-accent) !important;
    transform: translateX(-4px);
}

.participation-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.participation-card:hover {
    transform: translateX(4px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.04);
}

/* Search Form Styles */
.speakers-search-form {
    display: flex;
    gap: 10px;
    width: 100%;
}

@media (max-width: 550px) {
    .speakers-search-wrapper {
        padding: 15px !important;
        margin-bottom: 30px !important;
    }
    .speakers-search-form {
        flex-direction: column;
        gap: 8px;
    }
    .speakers-search-form input,
    .speakers-search-form button,
    .speakers-search-form a {
        width: 100% !important;
        box-sizing: border-box;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    }
}

/* ==========================================================================
   Logo Archive Grid & Cards (Institutions & Companies)
   ========================================================================== */

.logo-archive-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    width: 100%;
}

.logo-archive-card {
    background: #ffffff;
    border: 1px solid #eeeeee;
    border-radius: 8px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    min-height: 180px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.02);
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    text-decoration: none;
    box-sizing: border-box;
}

/* Hover States */
.logo-archive-card.link-card:hover {
    transform: translateY(-4px);
    border-color: var(--color-primary);
    box-shadow: 0 10px 25px rgba(0,0,0,0.06);
    cursor: pointer;
}

.logo-archive-card.link-card:hover .logo-card-title {
    color: var(--color-primary);
}

.logo-card-image-wrapper {
    height: 100px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    overflow: hidden;
}

.logo-card-img {
    max-height: 90px;
    max-width: 90%;
    object-fit: contain;
    filter: grayscale(10%) contrast(95%);
    transition: filter 0.3s ease, transform 0.3s ease;
}

.logo-archive-card.link-card:hover .logo-card-img {
    filter: grayscale(0%) contrast(100%);
    transform: scale(1.03);
}

.logo-card-placeholder {
    font-weight: 700;
    color: #8c8f94;
    font-size: 1.1rem;
    line-height: 1.3;
}

.logo-card-title {
    font-size: 0.95rem;
    color: var(--color-text);
    font-weight: 700;
    margin: 10px 0 0 0;
    line-height: 1.4;
    transition: color 0.3s ease;
}

/* State Badge (Academic Institutions) */
.state-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    background-color: #f1f5f9;
    color: #475569;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    z-index: 5;
}

/* Responsive Grid Breakpoints */
@media (max-width: 992px) {
    .logo-archive-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 25px;
    }
}

@media (max-width: 768px) {
    .logo-archive-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

@media (max-width: 480px) {
    .logo-archive-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* ==========================================================================
   Quem Somos Page Template Styling
   ========================================================================== */

/* Council Grid (Conselho de Administração) */
.conselho-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    width: 100%;
}

.conselho-card {
    background: #ffffff;
    border: 1px solid #eeeeee;
    border-radius: 8px;
    padding: 30px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 4px 12px rgba(0,0,0,0.02);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    box-sizing: border-box;
}

.conselho-card:hover {
    transform: translateY(-4px);
    border-color: var(--color-primary);
    box-shadow: 0 10px 25px rgba(0,0,0,0.06);
}

.conselho-photo-wrapper {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    overflow: hidden;
    margin-bottom: 20px;
    border: 3px solid #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f8fafc;
}

.conselho-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.conselho-placeholder {
    color: #cbd5e1;
    font-size: 2.5rem;
}

.conselho-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 8px 0;
    line-height: 1.3;
}

.conselho-role {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.4;
}

/* Documents Grid */
.documentos-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    width: 100%;
}

.documento-card {
    background: #ffffff;
    border: 1px solid #eeeeee;
    border-radius: 8px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    box-shadow: 0 4px 12px rgba(0,0,0,0.02);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    box-sizing: border-box;
}

.documento-card:hover {
    transform: translateY(-2px);
    border-color: var(--color-accent);
    box-shadow: 0 8px 20px rgba(0,0,0,0.05);
}

.doc-icon-title {
    margin-bottom: 15px;
    width: 100%;
}

.doc-icon {
    font-size: 2.2rem;
    display: block;
    margin-bottom: 12px;
}

.doc-title {
    font-size: 1.05rem;
    color: var(--color-text);
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
}

.doc-btn {
    display: inline-block;
    background-color: var(--color-primary);
    color: #ffffff !important;
    padding: 8px 20px;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: background 0.2s ease, transform 0.2s ease;
    text-decoration: none;
    box-sizing: border-box;
}

.doc-btn:hover {
    background-color: #007a3b;
    transform: translateY(-1px);
}

/* Responsive Breakpoints for Quem Somos Page */
@media (max-width: 992px) {
    .conselho-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }
    .documentos-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

@media (max-width: 600px) {
    .conselho-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .documentos-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }
}

/* ==========================================================================
   Newsletter Archive & Post Relations Styles
   ========================================================================== */

.newsletter-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 28px rgba(0,0,0,0.08) !important;
}

.newsletter-btn-download:hover {
    background-color: #007a3b !important;
}

.newsletter-article-link:hover {
    color: var(--color-accent) !important;
    text-decoration: underline !important;
}

.newsletter-relation-banner .btn-download-pdf:hover {
    background-color: #007a3b !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}

@media (max-width: 768px) {
    .newsletter-relation-banner {
        flex-direction: column;
        align-items: flex-start !important;
        padding: 20px !important;
    }
    .newsletter-relation-banner .btn-download-pdf {
        width: 100%;
        text-align: center;
    }
}

/* WordPress Standard Image Alignment Classes */
.alignleft {
    float: left;
    margin: 5px 24px 24px 0;
    max-width: 40%;
    height: auto;
}

.alignright {
    float: right;
    margin: 5px 0 24px 24px;
    max-width: 40%;
    height: auto;
}

.aligncenter {
    display: block;
    margin: 24px auto;
    clear: both;
    max-width: 100%;
    height: auto;
}

/* Responsive adjustments for floated images */
@media (max-width: 600px) {
    .alignleft, .alignright {
        float: none;
        margin: 10px auto;
        display: block;
        max-width: 100%;
    }
}

/* Clear floats in text containers to prevent overflow */
p::after,
.entry-content::after,
article::after {
    content: "";
    display: table;
    clear: both;
}

/* Flexbox Side-by-Side Images with Vertical Centering */
.has-inline-image {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-bottom: 24px;
}

.has-inline-image.align-right {
    flex-direction: row-reverse;
}

.has-inline-image.align-left {
    flex-direction: row;
}

.has-inline-image > img {
    flex-shrink: 0;
    max-width: 40%;
    margin: 0 !important;
    display: block;
}

.has-inline-image > span {
    flex-grow: 1;
    display: block;
}

/* Responsive adjustments for flex columns */
@media (max-width: 600px) {
    .has-inline-image {
        flex-direction: column !important;
        gap: 16px;
    }
    .has-inline-image > img {
        max-width: 100%;
        margin: 0 auto !important;
    }
}


/* ============================================================
   Bloco Gutenberg: Mídia e Texto (wp-block-media-text)
   Corrige alinhamento, padding excessivo e layout mobile.
   ============================================================ */

/* Container principal do bloco */
.entry-content .wp-block-media-text {
    /* Ocupa 100% da largura do container do artigo */
    width: 100%;
    max-width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 2rem;

    /* Gap entre coluna de imagem e coluna de texto */
    column-gap: 40px;
    row-gap: 0;

    /* Sem diferenciação visual: sem fundo, sem borda */
    background-color: transparent;
    border: none;

    /* Alinha verticalmente ao centro por padrão */
    align-items: center;
}

/* Coluna do texto: zera o padding 0 8% padrão do Gutenberg */
.entry-content .wp-block-media-text .wp-block-media-text__content,
.entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
    padding: 0;
}

/* Coluna da imagem: sem margin extra */
.entry-content .wp-block-media-text .wp-block-media-text__media {
    margin: 0;
    align-self: stretch;  /* ocupa toda a altura do bloco */
}

/* Imagem: cobre a coluna inteiramente */
.entry-content .wp-block-media-text .wp-block-media-text__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 8px;
}

/* Parágrafos dentro do bloco: herdam fonte e line-height do artigo */
.entry-content .wp-block-media-text .wp-block-media-text__content p {
    line-height: 1.8;
    color: var(--color-text);
    text-align: left;
}

/* ── Mobile ──────────────────────────────────────────────── */
@media (max-width: 600px) {

    /* Remove borda e fundo no mobile para não criar "caixa" */
    .entry-content .wp-block-media-text {
        background-color: transparent;
        border: none;
        border-radius: 0;
        row-gap: 20px; /* espaço entre imagem empilhada e texto */
        margin-bottom: 1.5rem;
    }

    /* No mobile empilhado, padding simétrico dos lados */
    .entry-content .wp-block-media-text .wp-block-media-text__content,
    .entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
        padding: 0;
    }

    /* Imagem ocupa toda a largura e tem altura natural */
    .entry-content .wp-block-media-text .wp-block-media-text__media img {
        height: auto;
        object-fit: contain;
        border-radius: 8px;
    }
}

/* ==========================================================================
   Página 404 Personalizada (SulBiotec) - Versão Clean Tela Inteira
   ========================================================================== */

.error-404-body {
    margin: 0 !important;
    padding: 0 !important;
    background-color: var(--color-background);
}

.error-404-fullscreen {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    width: 100%;
    padding: 40px 20px;
    box-sizing: border-box;
    background-color: var(--color-background);
}

.error-404-card {
    max-width: 650px;
    width: 100%;
    text-align: center;
    background-color: var(--color-white);
    padding: 50px 40px;
    border-radius: 16px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.05);
    border-top: 5px solid var(--color-primary);
    animation: fadeIn 0.6s ease-out;
    box-sizing: border-box;
}

.error-404-logo {
    margin-bottom: 25px;
}

.error-404-logo img {
    max-height: 70px;
    width: auto;
    margin: 0 auto;
}

.error-404-number {
    font-size: 8rem;
    font-weight: 900;
    line-height: 1;
    color: var(--color-primary);
    margin-bottom: 20px;
    letter-spacing: -2px;
}

.error-title {
    font-size: 2rem;
    color: var(--color-text);
    margin-bottom: 10px;
    font-weight: 700;
}

.error-lead {
    font-size: 1.05rem;
    color: #666;
    margin-bottom: 35px;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.5;
}

/* Action Buttons (same primary color) */
.error-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.btn-error {
    display: inline-flex;
    align-items: center;
    padding: 12px 24px;
    border-radius: 8px;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.btn-primary-error {
    background-color: var(--color-primary);
    color: var(--color-white);
    border: 2px solid var(--color-primary);
}

.btn-primary-error:hover {
    background-color: #007739;
    border-color: #007739;
    color: var(--color-white);
    transform: translateY(-2px);
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .error-404-fullscreen {
        padding: 20px 10px;
    }
    
    .error-404-card {
        padding: 35px 20px;
    }
    
    .error-title {
        font-size: 1.6rem;
    }
    
    .error-actions {
        flex-direction: column;
        gap: 8px;
    }
    
    .btn-error {
        width: 100%;
        justify-content: center;
    }
}





