:root{
  --accent:#DE5905;
  --accent-soft:#FBE6D8;
  --accent-soft-2:#FFF1E7;
  --accent-grad:linear-gradient(135deg,#F7C3A1,#FFE9DB);
}

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

/* Smooth scrolling y offset para secciones */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 120px;
}

/* Import INTER font family */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

body {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    line-height: 1.6;
    color: #333;
} 

/* Typography Hierarchy */
h1 {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
}

h2, h3 {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
}

h4, h5, h6 {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
}

p, span, div {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
}

/* Navigation and buttons use semibold */
.nav-item, .nav-link, .register-btn, .action-btn {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
}

/* Dropdown links use medium */
.dropdown-link, .subdropdown-link {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
}
/* Header */
.header {
    background: #5b1b8a; /* violeta LAG-CLL */
    color: white;
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 1000;
}

.header-content {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    padding: 0 1.5rem;
    gap: 1rem;
    min-height: 64px;
}

/* Logo Styles */
.logo-container {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    min-width: 100px;
    order: 1;
    gap: 8px;
}



.sah-logo:hover {
    transform: scale(1.05);
    filter: brightness(1.1);
    opacity: 1;
}

.sah-logo:not([src]) {
    opacity: 0.5;
    background: #f0f0f0;
    border-radius: 4px;
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
    display: none;
    flex-direction: column;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    z-index: 1001;
    order: 3;
}

.mobile-menu-toggle span {
    width: 25px;
    height: 3px;
    background: white;
    margin: 3px 0;
    transition: 0.3s;
    border-radius: 2px;
}

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

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

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

/* Main Navigation */
.main-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    flex: 1;
    overflow: visible;
    order: 2;
}

.nav-item, .nav-link {
    color: white;
    text-decoration: none;
    padding: 0.7rem 0.6rem;
    border-radius: 6px;
    transition: all 0.3s ease;
    font-weight: 600;
    font-size: 0.8rem;
    position: relative;
    white-space: nowrap;
    display: flex;
    align-items: center;
    min-height: 40px;
    line-height: 1.2;
}

.nav-item:hover {
    background: rgba(255,255,255,0.2);
    transform: translateY(-1px);
}

/* Dropdown Styles */
.dropdown {
    position: relative;
}

.nav-link {
    padding: 0.7rem 0.6rem;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    white-space: nowrap;
    flex-shrink: 1;
}

.nav-link::after {
    content: '▼';
    margin-left: 0.4rem;
    font-size: 0.7rem;
    transition: transform 0.3s ease;
    opacity: 0.8;
}

.dropdown:hover .nav-link::after {
    transform: rotate(180deg);
}

.dropdown-content {
    position: absolute;
    top: 100%;
    left: 0;
    background: white;
    min-width: 300px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    border-radius: 8px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    z-index: 9999;
    padding: 0.5rem 0;
    border: 1px solid #e5e7eb;
}

.dropdown:hover .dropdown-content {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown-item {
    position: relative;
}

.dropdown-link {
    display: block;
    padding: 0.8rem 1.2rem;
    color: #2c3e50;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
    transition: all 0.3s ease;
    border-left: 3px solid transparent;
    line-height: 1.3;
}

.dropdown-link:hover {
    background: #f8f9fa;
    border-left-color: #3498db;
    padding-left: 1.8rem;
}

/* Subdropdown Styles */
.subdropdown-content {
    position: absolute;
    top: 0;
    left: 100%;
    background: #f8f9fa;
    min-width: 220px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    border-radius: 6px;
    opacity: 0;
    visibility: hidden;
    transform: translateX(-10px);
    transition: all 0.3s ease;
    z-index: 10000;
    padding: 0.5rem 0;
    border: 1px solid #e5e7eb;
}

.dropdown-item:hover .subdropdown-content {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}

.subdropdown-link {
    display: block;
    padding: 0.7rem 1rem;
    color: #1f2937;
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
    transition: all 0.3s ease;
    border-left: 2px solid transparent;
    line-height: 1.3;
}

.subdropdown-link:hover {
    background: #e5e7eb;
    border-left-color: var(--accent);
    padding-left: 1.5rem;
    color: var(--accent);
}

.register-btn {
    background: linear-gradient(135deg, var(--accent), var(--accent-3));
    color: white;
    padding: 0.8rem 1.2rem;
    border: none;
    border-radius: 25px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    font-size: 0.9rem;
    white-space: nowrap;
    min-height: 40px;
    box-shadow: 0 2px 8px rgba(244, 162, 97, 0.3);
    order: 4;
    flex-shrink: 0;
}

.register-btn:hover {
    background: linear-gradient(135deg, var(--accent-2), var(--accent-3));
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(244, 162, 97, 0.4);
}

/* Responsive mejorado */
@media (max-width: 1200px) {
    .header-content {
        max-width: 100%;
        padding: 0 1rem;
        gap: 0.5rem;
    }
    
    .main-nav {
        gap: 0.1rem;
    }
    
    .nav-item, .nav-link {
        font-size: 0.8rem;
        padding: 0.6rem 0.4rem;
    }
    
    .register-btn {
        font-size: 0.85rem;
        padding: 0.7rem 0.9rem;
        flex-shrink: 0;
    }
    
    .dropdown-content {
        min-width: 250px;
    }
}
 
@media (max-width: 1024px) {
    .nav-item, .nav-link {
        font-size: 0.75rem;
        padding: 0.6rem 0.4rem;
    }
    
    .dropdown-content {
        min-width: 250px;
    }
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .mobile-menu-toggle {
        display: flex;
    }

    .header-content {
        flex-wrap: nowrap;
        position: relative;
    }

    .logo-container {
        order: 1;
        flex: 1;
    }

    .register-btn {
        order: 2;
        font-size: 0.8rem;
        padding: 0.6rem 0.8rem;
    }

    .main-nav {
        order: 3;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        /*background: linear-gradient(90deg, #535858 0%, #2c3e50 100%);*/
		 background: #5b1b8a;
        flex-direction: column;
        width: 100%;
        box-shadow: 0 4px 15px rgba(0,0,0,0.2);
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s ease;
        gap: 0;
        padding: 0;
        z-index: 999;
    }

    .main-nav.active {
        max-height: 90vh;
        padding: 1rem 0;
        overflow-y: auto;
    }

    .main-nav * {
        text-align: left !important;
    }

    .nav-item, .dropdown {
        width: 100%;
        text-align: left !important;
        display: block;
    }

    .nav-item {
        margin: 0;
        padding: 1rem 1.5rem;
        border-bottom: 1px solid rgba(255,255,255,0.1);
        display: block;
        text-align: left !important;
        font-size: 1rem;
    }

    .nav-link {
        padding: 1rem 1.5rem;
        width: 100%;
        display: flex;
        border-bottom: 1px solid rgba(255,255,255,0.1);
        text-align: left !important;
        justify-content: space-between;
        font-size: 1rem;
    }

    /* Dropdowns móvil */
    .dropdown-content {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        background: rgba(255,255,255,0.95);
        margin: 0;
        border-radius: 0;
        box-shadow: none;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s ease;
        padding: 0;
        border: none;
    }

    .dropdown.active .dropdown-content {
        max-height: 1000px;
        padding: 0.5rem 0;
    }

    .dropdown-item {
        border-bottom: 1px solid rgba(0,0,0,0.1);
    }

    .dropdown-link {
        padding: 1rem 2.5rem;
        font-size: 0.95rem;
        border-left: none;
        background: transparent;
        position: relative;
        text-align: left !important;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .dropdown-item.has-subdropdown .dropdown-link::after {
        content: '▶';
        font-size: 0.8rem;
        transition: transform 0.3s ease;
        color: #666;
        margin-left: auto;
    }

    .dropdown-item.has-subdropdown.active .dropdown-link::after {
        transform: rotate(90deg);
    }

    .dropdown-link:hover {
        background: rgba(0,0,0,0.1);
        padding-left: 2.5rem;
        border-left: none;
    }

    .subdropdown-content {
        position: static;
        left: auto;
        top: auto;
        transform: none;
        margin: 0;
        background: rgba(230,230,230,0.95);
        box-shadow: none;
        border-radius: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s ease;
        padding: 0;
        border: none;
    }

    .dropdown-item.active .subdropdown-content {
        opacity: 1;
        visibility: visible;
        max-height: 600px;
        padding: 0.5rem 0;
    }

    .subdropdown-link {
        padding: 0.8rem 3.5rem !important;
        font-size: 0.9rem !important;
        border-left: none;
        color: #1f2937 !important;
        text-align: left !important;
        display: block;
        background: transparent !important;
    }

    .subdropdown-link:hover,
    .subdropdown-link:focus,
    .subdropdown-link:active {
        background: #e5e7eb !important;
        color: var(--accent) !important;
        padding-left: 3.5rem !important;
        border-left: none !important;
    }
}

/* Hero Section */
.hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: #4ABDD6;
    z-index: 1;
}

.hero {
    background: linear-gradient(135deg, var(--accent), var(--accent-3));
    padding: clamp(2.5rem, 4vw, 4.2rem) 0; /* más alto para que respire el contenido */
	display: flex;
    position: relative;
    overflow: hidden;
}




/* Grilla de fondo */
.hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100%" height="100%" fill="url(%23grid)"/></svg>');
    opacity: 0.28;
    pointer-events: none;
}

/* 50% / 50% */
.hero-content {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 2rem;
    position: relative;
    z-index: 1;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
}

.hero-left,
.hero-right {
    flex: 0 0 50%;
    max-width: 50%;
}

.hero-left {
    display: flex;
    justify-content: top;
    align-items: flex-start;
}

.hero-left img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.hero-right {
    display: flex;
    justify-content: flex-end;
    padding-right: 2.5rem;
    align-items: flex-start;
}

/* Imagen izquierda */
.hero-icons-image1 {
    width: 100%;
    height: 100%;
    max-height: 520px; /* rellena más alto sin deformar */
    object-fit: cover;
    border-radius: 10px;
    filter: drop-shadow(0 8px 22px rgba(0,0,0,0.18));
    opacity: 0.95;
    transition: transform 0.3s ease, filter 0.3s ease, opacity 0.3s ease;
}

.hero-icons-image1:hover {
    transform: scale(1.01);
    filter: drop-shadow(0 10px 28px rgba(0,0,0,0.22));
    opacity: 1;
}

/* Tarjeta de texto derecha */
.hero-right-card {
    width: 100%;
    max-width: 560px;
    background: rgba(255, 255, 255, 0.88);
    border-radius: 18px;
    padding: 2.2rem 2.2rem;
    box-shadow: 0 12px 35px rgba(0,0,0,0.18);
}

.hero-right-card h2 {
    margin: 0 0 1rem 0;
    font-size: clamp(1.8rem, 1.2vw + 1.2rem, 2.2rem);
    font-weight: 800;
    color: var(--accent-3);
    text-align: right;
    letter-spacing: 0.3px;
}

.hero-right-card p {
    margin: 0;
    color: #1f2937;
    font-size: clamp(0.98rem, 0.35vw + 0.95rem, 1.05rem);
    line-height: 1.75;
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}

/* Responsive: apilar en mobile */
@media (max-width: 992px) {
    .hero {
        padding: 4rem 0 5rem;
    }

    .hero-content {
        flex-direction: column;
        align-items: center;
    }

    .hero-left,
    .hero-right {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .hero-right {
        justify-content: center;
    }

    .hero-right-card {
        max-width: 720px;
    }

    .hero-right-card h2 {
        text-align: center;
    }
}

/* Action Section */
.action-section {
    background: linear-gradient(180deg, #4ABDD6 0%, #f9c4a6 30%);
    padding: 4rem 0;
    position: relative;
}

.action-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.1);
    z-index: 1;
}

.action-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 2rem;
    position: relative;
    z-index: 2;
    gap: 2rem;
}

.action-left,
.action-right {
    flex: 1;
    display: flex;
    align-items: center;
}

.action-left {
    justify-content: flex-start;
}

.action-right {
    justify-content: flex-end;
    padding-right: 2.5rem;
}

.sueltos-image,
.slogan-image {
    max-width: 100%;
    height: auto;
    transition: transform 0.3s ease, filter 0.3s ease;
    filter: drop-shadow(0 4px 15px rgba(0,0,0,0.2));
}

.sueltos-image {
    max-width: 280px;
}

.slogan-image {
    max-width: 420px;
}

.sueltos-image:hover,
.slogan-image:hover {
    transform: scale(1.02);
    filter: drop-shadow(0 6px 20px rgba(0,0,0,0.3));
}

/* Info Section */
.info-section {
    padding: 4rem 0;
    background: linear-gradient(135deg, var(--accent), var(--accent-3));
}

.info-section-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    padding: 0 2rem;
    gap: 3rem;
}

.info-section-title {
    width: 20%;
    color: white;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
    margin: 0;
}

.info-grid {
    width: 80%;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1.5rem;
    grid-auto-rows: min-content;
}

.info-card {
    background: transparent;
    padding: 1.5rem;
    border-radius: 15px;
    text-align: center;
    box-shadow: none;
    transition: all 0.3s ease;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 180px;
}

.info-card:hover {
    transform: translateY(-8px) scale(1.05);
    box-shadow: 0 12px 35px rgba(0,0,0,0.3);
}

.info-card .info-icon {
    width: 100%;
    height: auto;
    max-width: 120px;
    margin-bottom: 1rem;
    transition: all 0.3s ease;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,0.1));
    flex-shrink: 0;
}

.info-text {
    font-size: 0.75rem;
    color: white !important;
    font-weight: 600;
    text-align: center;
    margin-top: 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 0.5rem;
}

.info-card:hover .info-icon {
    transform: scale(1.1);
    filter: drop-shadow(0 4px 15px rgba(0,0,0,0.2));
}

/* Autoridades Section */
.autoridades-section {
    padding: 4rem 0;
    background: white;
    position: relative;
}

.autoridades-section-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

.autoridades-tabs-container {
    background: white;
    border-radius: 0;
    padding: 0;
    margin-bottom: 0;
}

.autoridades-tabs {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0;
    padding: 0;
    margin-bottom: 2rem;
    position: relative;
}

.autoridades-tab-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    position: relative;
}

.tab-image {
    height: 50px;
    width: auto;
    flex-shrink: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0.9;
}

.tab-image:hover {
    transform: scale(1.05);
    opacity: 1;
}

.autoridades-tab-btn {
    background: white;
    border: none;
    padding: 15px 25px;
    font-size: 0.85rem;
    font-weight: 700;
    color: white;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 45px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.autoridades-tab-wrapper:nth-child(1) .autoridades-tab-btn {
    background: linear-gradient(135deg, var(--accent), var(--accent-3));
    color: white;
}

.autoridades-tab-wrapper:nth-child(2) .autoridades-tab-btn {
    background: #4ABDD6;
    color: white;
}

.autoridades-tab-wrapper:nth-child(3) .autoridades-tab-btn {
    background: #666666;
    color: white;
}

.autoridades-tab-btn:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

.autoridades-tab-btn.active {
    opacity: 1;
}

.tab-text {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    line-height: 1.2;
    margin-left: 0;
}

.autoridades-content-wrapper {
    display: flex;
    gap: 0;
    border: none;
    border-radius: 0;
}

.autoridades-title-sidebar {
    width: 200px;
    background: white;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 2rem 1rem;
    flex-shrink: 0;
}

.autoridades-section-title {
    color: #2c3e50;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    margin: 0;
    writing-mode: horizontal-tb;
    transform: rotate(0deg);
    letter-spacing: 1px;
}

.autoridades-content {
    flex: 1;
    background: white;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}

.autoridades-tab-content {
    display: none;
    animation: fadeIn 0.5s ease;
}

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

.autoridades-main-content {
    padding: 2rem;
}

.autoridades-section-block {
    margin-bottom: 3rem;
    position: relative;
}

.autoridades-section-block:not(:last-child)::after {
    content: '';
    position: absolute;
    bottom: -1.5rem;
    left: 0;
    right: 0;
    height: 1px;
    background: repeating-linear-gradient(
        to right,
        #333 0,
        #333 8px,
        transparent 8px,
        transparent 16px
    );
}

.autoridades-section-header {
    color: #2c3e50;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding-bottom: 0.5rem;
}

.autoridades-grid-layout {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
    align-items: start;
}

.autoridades-column {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.autoridad-row {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

/* SOLUCIÓN COMPLETA PARA AUTORIDADES MÓVIL */
/* Reemplazar la sección de autoridades móvil en styles.css */

/* Base improvements for better readability */
.cargo-label {
    color: #666666;
    font-size: 0.75rem; /* Increased from 0.65rem */
    font-weight: 500; /* Increased from 400 */
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.3; /* Increased from 1.2 */
    margin-bottom: 0.5rem; /* Added margin */
}

.nombre-value {
    color: #2c3e50;
    font-size: 0.95rem; /* Increased from 0.85rem */
    font-weight: 500; /* Increased from 400 */
    line-height: 1.4; /* Increased from 1.3 */
}

/* MÓVIL - REDISEÑO COMPLETO PARA MEJOR LEGIBILIDAD */
@media (max-width: 768px) {
    .autoridades-content {
        padding: 0; /* Remove extra padding */
    }
    
    .autoridades-main-content {
        padding: 1rem; /* Reduced from 2rem */
    }
    
    .autoridades-section-block {
        margin-bottom: 2rem; /* Reduced from 3rem */
    }
    
    .autoridades-section-header {
        font-size: 1.1rem; /* Increased from 1rem */
        margin-bottom: 1.2rem; /* Reduced from 1.5rem */
        font-weight: 700;
        text-align: center;
        color: var(--accent);
        background: rgba(244, 162, 97, 0.1);
        padding: 0.8rem;
        border-radius: 8px;
        border-left: 4px solid var(--accent);
    }
    
    .autoridades-grid-layout {
        display: block; /* Change from grid to block */
        gap: 0;
    }
    
    .autoridades-column {
        margin-bottom: 0; /* Remove bottom margin */
    }
    
    /* REDISEÑO COMPLETO DE TARJETAS INDIVIDUALES */
    .autoridad-row {
        margin-bottom: 1.5rem; /* Increased spacing between items */
        padding: 1rem; /* Add padding for better touch targets */
        background: white; /* Clean white background */
        border-radius: 12px; /* More rounded corners */
        border: 2px solid #f8f9fa; /* Subtle border */
        box-shadow: 0 2px 8px rgba(0,0,0,0.08); /* Soft shadow */
        transition: all 0.3s ease;
        position: relative;
    }
    
    .autoridad-row:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 16px rgba(244, 162, 97, 0.15);
        border-color: var(--accent);
    }
    
    /* INDICADOR VISUAL LATERAL */
    .autoridad-row::before {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 4px;
        background: linear-gradient(to bottom, var(--accent), var(--accent));
        border-radius: 4px 0 0 4px;
    }
    
    .cargo-label {
        font-size: 0.85rem; /* Significantly increased */
        font-weight: 700; /* Bolder */
        color: var(--accent); /* More prominent color */
        margin-bottom: 0.8rem; /* Increased margin */
        letter-spacing: 0.8px;
        text-transform: uppercase;
        display: block;
        text-align: left;
        padding-left: 0.5rem; /* Add some left padding */
    }
    
    .nombre-value {
        font-size: 1.1rem; /* Significantly increased */
        font-weight: 500;
        line-height: 1.6; /* More breathing room */
        color: #2c3e50;
        display: block;
        text-align: left;
        padding-left: 0.5rem; /* Add some left padding */
        word-wrap: normal;
        hyphens: auto;
    }
    
    /* MEJORAR TABS MÓVIL */
    .autoridades-tabs-container {
        margin-bottom: 1.5rem;
    }
    
    .autoridades-tabs {
        flex-direction: column;
        gap: 0.8rem;
        padding: 1rem;
        background: #f8f9fa;
        border-radius: 12px;
    }
    
    .autoridades-tab-wrapper {
        width: 100%;
        justify-content: flex-start;
    }
    
    .autoridades-tab-btn {
        width: 100%;
        padding: 1rem; /* Increased padding */
        min-height: 60px; /* Ensure touch-friendly height */
        text-align: left;
        justify-content: flex-start;
        border-radius: 8px;
        font-size: 0.85rem;
    }
    
    .tab-image {
        height: 40px; /* Slightly smaller for mobile */
        margin-right: 0.8rem;
    }
    
    .tab-text {
        font-size: 0.8rem; /* Increased from 0.75rem */
        font-weight: 700;
        line-height: 1.3;
        flex: 1;
    }
    
    /* MEJORAR TÍTULO SIDEBAR */
    .autoridades-title-sidebar {
        width: 100%;
        text-align: center;
        justify-content: center;
        padding: 1rem 0.5rem;
        background: linear-gradient(135deg, var(--accent), var(--accent-3));
        border-radius: 12px;
        margin-bottom: 1.5rem;
    }
    
    .autoridades-section-title {
        font-size: 1.4rem; /* Increased */
        line-height: 1.3;
        color: white;
        text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
        margin: 0;
    }
    
    /* LAYOUT CONTENEDOR */
    .autoridades-content-wrapper {
        flex-direction: column;
        gap: 0;
    }
}

/* Pantallas muy pequeñas (teléfonos en portrait) */
@media (max-width: 480px) {
    .autoridades-main-content {
        padding: 0.8rem;
    }
    
    .autoridad-row {
        padding: 0.8rem;
        margin-bottom: 1.2rem;
    }
    
    .cargo-label {
        font-size: 0.8rem;
        margin-bottom: 0.6rem;
    }
    
    .nombre-value {
        font-size: 1rem;
        line-height: 1.5;
    }
    
    .autoridades-section-header {
        font-size: 1rem;
        margin-bottom: 1rem;
        padding: 0.6rem;
    }
    
    .tab-text {
        font-size: 0.75rem;
        line-height: 1.4;
    }
    
    .autoridades-section-title {
        font-size: 1.2rem;
    }
}

/* Tablet specific adjustments */
@media (min-width: 769px) and (max-width: 1024px) {
    .cargo-label {
        font-size: 0.8rem;
    }
    
    .nombre-value {
        font-size: 1rem;
    }
    
    .autoridades-grid-layout {
        grid-template-columns: repeat(2, 1fr); /* 2 columns instead of 3 */
        gap: 2rem;
    }
}

/* TÍTULOS DINÁMICOS MEJORADOS */
.autoridades-section-title {
    color: #2c3e50;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    margin: 0;
    writing-mode: horizontal-tb;
    transform: rotate(0deg);
    letter-spacing: 1px;
    line-height: 1.2;
    transition: all 0.3s ease;
}

/* Responsive para títulos más largos */
@media (max-width: 1024px) {
    .autoridades-section-title {
        font-size: 1.4rem;
        line-height: 1.3;
    }
}

@media (max-width: 768px) {
    .autoridades-title-sidebar {
        width: 100%;
        text-align: center;
        justify-content: center;
        padding: 1rem 0.5rem;
    }
    
    .autoridades-section-title {
        font-size: 1.2rem;
        line-height: 1.4;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .autoridades-section-title {
        font-size: 1rem;
        line-height: 1.5;
        letter-spacing: 0.5px;
    }
}

/* Resumenes Section */
.resumenes-section {
    padding: 4rem 0;
    background: linear-gradient(180deg, #4ABDD6 0%, #f9c4a6 100%);
    position: relative;
}

.resumenes-section-content {
    max-width: 700px;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.resumenes-section-title {
    color: white;
    font-size: 2.5rem;
    font-weight: 700;
    font-family: 'Inter', sans-serif;
    text-align: center;
    margin-bottom: 3rem;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}

.resumenes-section-subtitle {
    color: black;
    font-size: 1.5rem;
    font-weight: 400;
    font-family: 'Inter', sans-serif;
    text-align: center;
    margin-bottom: 3rem;
}

.resumenes-grid {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4rem;
    width: 100%;
    max-width: 800px;
}

.resumenes-card {
    background: transparent;
    padding: 2rem;
    border-radius: 15px;
    text-align: center;
    box-shadow: none;
    transition: all 0.3s ease;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 200px;
    width: 300px;
    flex-shrink: 0;
}

.resumenes-card:hover {
    transform: translateY(-8px) scale(1.05);
    box-shadow: 0 12px 35px rgba(0,0,0,0.3);
}

.resumenes-card .resumenes-icon {
    width: 100%;
    height: auto;
    max-width: 140px;
    margin-bottom: 1.5rem;
    transition: all 0.3s ease;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,0.1));
    flex-shrink: 0;
}

.resumenes-text {
    font-size: 0.85rem;
    color: black !important;
    font-weight: 600;
    text-align: center;
    margin-top: 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 1rem;
}

.resumenes-text a {
    color: black !important;
    text-decoration: none;
    transition: all 0.3s ease;
}

.resumenes-text a:hover {
    text-decoration: underline;
    text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.resumenes-card:hover .resumenes-icon {
    transform: scale(1.1);
    filter: drop-shadow(0 4px 15px rgba(0,0,0,0.2));
}

/* Responsive para tablets */
@media (max-width: 1024px) {
    .resumenes-grid {
        gap: 3rem;
        max-width: 700px;
    }
    
    .resumenes-card {
        width: 280px;
        min-height: 180px;
        padding: 1.8rem;
    }
    
    .resumenes-card .resumenes-icon {
        max-width: 120px;
    }
}

/* Responsive para móviles */
@media (max-width: 768px) {
    .resumenes-grid {
        flex-direction: column;
        gap: 2.5rem;
        max-width: 350px;
    }
    
    .resumenes-card {
        width: 100%;
        max-width: 320px;
        min-height: 180px;
        padding: 1.5rem;
    }
    
    .resumenes-card .resumenes-icon {
        max-width: 110px;
        margin-bottom: 1rem;
    }
    
    .resumenes-text {
        font-size: 0.8rem;
        min-height: 40px;
    }
    
    .resumenes-section-title {
        font-size: 2rem;
        margin-bottom: 2rem;
    }
    
    .resumenes-section-subtitle {
        font-size: 1.2rem;
        margin-bottom: 2rem;
    }
}

/* Programa Section - CON FONDO DEGRADÉ SUAVE */
 /* ===================== PROGRAM SECTION ===================== */

.program-section {
    background: #834cb0;
    padding: 4rem 0 5rem;
    position: relative;
}

/* Ribbon wrapper */
.program-ribbon-img-wrap {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    margin: 0 0 1.4rem 0;
    position: relative;
    z-index: 2;
}

/* Ribbon image */
.program-ribbon-img {
    height: 54px;
    width: auto;
    height: auto;
    display: block;
}

/* Responsive ajustes */
@media (max-width: 768px) {
    .program-ribbon-img {
        height: 48px;
    }

    .program-section {
        padding: 3rem 0 4rem;
    }
}

/* Program Preview Section (Coming Soon) */
.program-section--preview {
    position: relative;
    padding: 5rem 0 !important;
    background: url("https://www.lag-cll.org/images/background/fondo01_tramagris.png") center/cover no-repeat !important;
    min-height: 300px;
}

.program-preview-wrapper {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: clamp(1.2rem, 2vw, 2rem);
}

.program-section--preview .program-ribbon-img-wrap {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    margin: 0 0 1.4rem 0;
}

.program-section--preview .program-ribbon-img {
    height: 54px;
    width: auto;
    display: block;
}

.program-preview-content {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 2rem;
    text-align: center;
}

.program-preview-title {
    color: #5b1b8a;
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.4;
    background: rgba(255, 255, 255, 0.95);
    padding: 2.5rem 3rem;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

@media (max-width: 768px) {
    .program-section--preview {
        padding: 3rem 0 !important;
        min-height: 250px;
    }
    
    .program-section--preview .program-ribbon-img {
        max-width: 300px;
    }
    
    .program-preview-title {
        font-size: 1.35rem;
        padding: 2rem 1.5rem;
    }
}







.tabs-container {
    background: #f8f9fa;
    padding: 0;
    border-bottom: 1px solid #dee2e6;
    border-radius: 10px 10px 0 0;
    overflow: hidden;
}

.tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
}

.tab-btn {
    background: transparent;
    border: none;
    padding: 20px 40px;
    font-size: 1.1rem;
    font-weight: 600;
    color: #6c757d;
    cursor: pointer;
    transition: all 0.3s ease;
    border-bottom: 3px solid transparent;
    position: relative;
    flex: 1;
    min-width: 200px;
}

.tab-btn:hover {
    color: #495057;
    background: rgba(108, 117, 125, 0.1);
}

.tab-btn.active {
    color: #3498db;
    border-bottom-color: #3498db;
    background: white;
}

.tab-content {
    display: none;
    padding: 30px 15px; /* Reducido padding lateral */
    background: rgba(255, 255, 255, 0.9);
    border-radius: 0 0 10px 10px;
    animation: fadeIn 0.5s ease;
    backdrop-filter: blur(10px);
    overflow-x: visible; /* IMPORTANTE */
}

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

#miercoles.tab-content {
    background: linear-gradient(135deg, #F0F8FF 0%, #E6F3FF 100%);
    backdrop-filter: blur(10px);
}

#jueves.tab-content {
    background: linear-gradient(135deg, #F0FFF4 0%, #E6FFE6 100%);
    backdrop-filter: blur(10px);
}

#viernes.tab-content {
    background: linear-gradient(135deg, #FFFEF0 0%, #FFF9E6 100%);
    backdrop-filter: blur(10px);
}

#sabado.tab-content {
    background: linear-gradient(135deg, #FFF5F8 0%, #FFE6F0 100%);
    backdrop-filter: blur(10px);
}

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

.day-title {
    text-align: center;
    font-size: 2rem;
    color: #2c3e50;
    margin-bottom: 30px;
    font-weight: 300;
}

.venue-section {
    margin-bottom: 40px;
    overflow-x: visible; /* IMPORTANTE */
}

.venue-title {
    color: white;
    padding: 15px 25px;
    border-radius: 10px;
    font-size: 1.4rem;
    font-weight: 600;
    margin-bottom: 20px;
    text-align: center;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.venue-title.sheraton {
    background: linear-gradient(135deg, var(--accent), var(--accent-3));
}

.venue-title.costa-galana {
    background: linear-gradient(135deg, #3498db, #2980b9);
}

/* CONTENEDOR DE SCROLL - CLAVE PARA EL FIX */
.schedule-wrapper {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    background: white;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #3498db #f1f1f1;
    /* FORZAR ANCHO MÍNIMO */
    width: 100%;
    min-width: 100%;
    position: relative;
}

.schedule-wrapper::-webkit-scrollbar {
    height: 14px;
}

.schedule-wrapper::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.schedule-wrapper::-webkit-scrollbar-thumb {
    background: #3498db;
    border-radius: 10px;
}

.schedule-wrapper::-webkit-scrollbar-thumb:hover {
    background: #2980b9;
}

/* GRID BASE - CLAVE: display: grid NO SE PUEDE CAMBIAR */
.schedule-grid {
    display: grid !important;
    gap: 1px;
    background: #dee2e6;
    border-radius: 10px;
    overflow: visible;
    margin-bottom: 0;
    /* FORZAR ANCHOS MÍNIMOS ABSOLUTOS */
    width: max-content !important;
    min-width: max-content !important;
}

/* GRIDS ESPECÍFICOS CON ANCHOS FIJOS ABSOLUTOS */
.sheraton-grid {
    grid-template-columns: 70px 120px 120px 120px 120px 120px 120px 120px 120px 120px 120px 120px !important;
    width: 1510px !important;
    min-width: 1510px !important;
}

.costa-galana-grid {
    grid-template-columns: 70px 120px 120px 120px 120px 120px !important;
    width: 670px !important;
    min-width: 670px !important;
}

/* CELDAS CON ANCHOS MÍNIMOS */
.time-header, 
.room-header {
    background: #495057;
    color: white;
    padding: 8px 4px;
    font-weight: 600;
    text-align: center;
    font-size: 0.75rem;
    line-height: 1.2;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60px;
    min-width: 120px; /* FORZAR ANCHO MÍNIMO */
    max-width: 120px;
    word-wrap: normal;
    hyphens: auto;
    white-space: normal;
    overflow-wrap: normal;
    box-sizing: border-box;
}

.time-slot {
    background: #6c757d;
    color: white;
    padding: 8px 4px;
    text-align: center;
    font-weight: 500;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 50px;
    min-width: 70px; /* FORZAR ANCHO MÍNIMO */
    max-width: 70px;
    font-size: 0.7rem;
    line-height: 1.1;
    white-space: nowrap;
    box-sizing: border-box;
}

.activity-slot {
    background: white;
    padding: 6px 4px;
    min-height: 50px;
    min-width: 120px; /* FORZAR ANCHO MÍNIMO */
    max-width: 120px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 1px solid transparent;
    position: relative;
    overflow: hidden;
    font-size: 0.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
}

.activity-slot:hover {
    background: #f8f9fa;
    border-color: #3498db;
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(52, 152, 219, 0.2);
}

.activity-slot.empty {
    background: #f8f9fa;
    cursor: default;
    color: #6c757d;
}

.activity-slot.empty:hover {
    transform: none;
    box-shadow: none;
    border-color: transparent;
    background: #f8f9fa;
}

.activity-slot.cafe {
    background: #d4edda;
    color: #155724;
    font-weight: 600;
}

.activity-slot.cafe:hover {
    background: #c3e6cb;
}

.activity-title {
    font-weight: 600;
    color: inherit;
    margin: 0;
    line-height: 1.2;
    text-align: center;
    word-wrap: normal;
    hyphens: auto;
    white-space: normal;
    overflow-wrap: normal;
    max-width: 100%;
}

/* RESPONSIVE - MANTENER ANCHOS FIJOS */
@media (max-width: 1400px) {
    .sheraton-grid {
        grid-template-columns: 65px 110px 110px 110px 110px 110px 110px 110px 110px 110px 110px 110px !important;
        width: 1375px !important;
        min-width: 1375px !important;
    }
    
    .costa-galana-grid {
        grid-template-columns: 65px 110px 110px 110px 110px 110px !important;
        width: 615px !important;
        min-width: 615px !important;
    }
    
    .time-header, .room-header {
        min-width: 110px;
        max-width: 110px;
        font-size: 0.7rem;
        padding: 6px 3px;
        min-height: 55px;
    }
    
    .time-slot {
        min-width: 65px;
        max-width: 65px;
        font-size: 0.65rem;
        padding: 6px 3px;
        min-height: 45px;
    }
    
    .activity-slot {
        min-width: 110px;
        max-width: 110px;
        font-size: 0.65rem;
        padding: 4px 3px;
        min-height: 45px;
    }
}

@media (max-width: 1200px) {
    
    
    .sheraton-grid {
        grid-template-columns: 60px 100px 100px 100px 100px 100px 100px 100px 100px 100px 100px 100px !important;
        width: 1260px !important;
        min-width: 1260px !important;
    }
    
    .costa-galana-grid {
        grid-template-columns: 60px 100px 100px 100px 100px 100px !important;
        width: 560px !important;
        min-width: 560px !important;
    }
    
    .time-header, .room-header {
        min-width: 100px;
        max-width: 100px;
        font-size: 0.65rem;
        padding: 5px 2px;
        min-height: 50px;
    }
    
    .time-slot {
        min-width: 60px;
        max-width: 60px;
        font-size: 0.6rem;
        padding: 5px 2px;
        min-height: 40px;
    }
    
    .activity-slot {
        min-width: 100px;
        max-width: 100px;
        font-size: 0.6rem;
        padding: 3px 2px;
        min-height: 40px;
    }
    
    .tab-btn {
        padding: 15px 30px;
        font-size: 1rem;
        min-width: 150px;
    }
    
    .venue-title {
        font-size: 1.2rem;
        padding: 12px 20px;
    }
}

@media (max-width: 1024px) {
    .sheraton-grid {
        grid-template-columns: 55px 90px 90px 90px 90px 90px 90px 90px 90px 90px 90px 90px !important;
        width: 1145px !important;
        min-width: 1145px !important;
    }
    
    .costa-galana-grid {
        grid-template-columns: 55px 90px 90px 90px 90px 90px !important;
        width: 505px !important;
        min-width: 505px !important;
    }
    
    .time-header, .room-header {
        min-width: 90px;
        max-width: 90px;
        font-size: 0.6rem;
        padding: 4px 2px;
        min-height: 45px;
    }
    
    .time-slot {
        min-width: 55px;
        max-width: 55px;
        font-size: 0.55rem;
        padding: 4px 2px;
        min-height: 35px;
    }
    
    .activity-slot {
        min-width: 90px;
        max-width: 90px;
        font-size: 0.55rem;
        padding: 2px 1px;
        min-height: 35px;
    }
}

@media (max-width: 768px) {
    
    
    
    
    .tab-content {
        padding: 20px 5px; /* Padding aún más reducido */
    }
    
    .venue-title {
        font-size: 1.1rem;
        padding: 10px 15px;
        margin-bottom: 15px;
    }
    
    /* INDICADOR DE SCROLL VISIBLE */
    .schedule-wrapper::before {
        content: "👈 Desliza horizontalmente para ver todas las columnas 👉";
        display: block;
        text-align: center;
        padding: 10px;
        background: #fff3cd;
        color: #856404;
        font-size: 0.8rem;
        font-weight: 600;
        border: 1px solid #ffeaa7;
        border-radius: 5px;
        margin-bottom: 10px;
    }
    
    .sheraton-grid {
        grid-template-columns: 50px 85px 85px 85px 85px 85px 85px 85px 85px 85px 85px 85px !important;
        width: 1085px !important;
        min-width: 1085px !important;
    }
    
    .costa-galana-grid {
        grid-template-columns: 50px 85px 85px 85px 85px 85px !important;
        width: 475px !important;
        min-width: 475px !important;
    }
    
    .time-header, .room-header {
        min-width: 85px;
        max-width: 85px;
        font-size: 0.55rem;
        padding: 3px 1px;
        min-height: 40px;
    }
    
    .time-slot {
        min-width: 50px;
        max-width: 50px;
        font-size: 0.5rem;
        padding: 3px 1px;
        min-height: 30px;
    }
    
    .activity-slot {
        min-width: 85px;
        max-width: 85px;
        font-size: 0.5rem;
        padding: 2px 1px;
        min-height: 30px;
    }
    
    .activity-title {
        font-size: 0.5rem;
        line-height: 1.1;
    }
    
    .tabs {
        flex-direction: column;
    }
    
    .tab-btn {
        padding: 12px 20px;
        font-size: 0.9rem;
        min-width: auto;
        width: 100%;
        border-bottom: 1px solid #dee2e6;
        border-radius: 0;
    }
    
    .tab-btn.active {
        border-bottom-color: #3498db;
        border-left: 3px solid #3498db;
    }
    
    .schedule-wrapper::-webkit-scrollbar {
        height: 12px;
    }
}

@media (max-width: 480px) {
    .sheraton-grid {
        grid-template-columns: 45px 80px 80px 80px 80px 80px 80px 80px 80px 80px 80px 80px !important;
        width: 1005px !important;
        min-width: 1005px !important;
    }
    
    .costa-galana-grid {
        grid-template-columns: 45px 80px 80px 80px 80px 80px !important;
        width: 445px !important;
        min-width: 445px !important;
    }
    
    .time-header, .room-header {
        min-width: 80px;
        max-width: 80px;
        font-size: 0.5rem;
        padding: 2px 1px;
        min-height: 35px;
    }
    
    .time-slot {
        min-width: 45px;
        max-width: 45px;
        font-size: 0.45rem;
        padding: 2px 1px;
        min-height: 25px;
    }
    
    .activity-slot {
        min-width: 80px;
        max-width: 80px;
        font-size: 0.45rem;
        padding: 1px;
        min-height: 25px;
    }
    
    .activity-title {
        font-size: 0.45rem;
    }
    
    .venue-title {
        font-size: 1rem;
        padding: 8px 12px;
    }
}

 
/* Inscripciones Section - BASE */
        .inscripciones-section {
            padding: 4rem 0;
            background: linear-gradient(180deg, #4ABDD6 0%, #f9c4a6 100%);
            position: relative;
        }

        .inscripciones-section-content {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 2rem;
        }

        .inscripciones-section-title {
            color: white;
            font-size: 2.5rem;
            font-weight: 700;
            font-family: 'Inter', sans-serif;
            text-align: center;
            margin-bottom: 3rem;
            text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
        }

        /* Contenedor unificado para inscripciones */
        .inscripciones-unified-container {
            background: white;
            border-radius: 15px;
            overflow: hidden;
            box-shadow: 0 8px 25px rgba(0,0,0,0.15);
            border: 2px solid #ddd;
        }

        /* TABLA DESKTOP - GRID NORMAL */
        .pricing-table {
            margin: 0;
            padding: 0;
            width: 100%;
        }

        .pricing-grid {
            display: grid;
            grid-template-columns: 200px repeat(9, 1fr);
            margin: 0;
            padding: 0;
            width: 100%;
        }

        .pricing-grid > div {
            border: 1px solid #ccc;
            box-sizing: border-box;
            padding: 0.7rem 0.5rem;
            font-size: 0.8rem;
            text-align: center;
            font-weight: 600;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        /* CATEGORÍA ocupa 2 filas */
        .pricing-grid .categoria-combinada {
            grid-row: span 2;
            grid-column: 1;
            background: #666666;
            color: white;
            font-weight: 700;
            font-size: 0.8rem;
            text-align: center;
        }

        /* Títulos de congresos */
        .pricing-grid .congress-title-argentino {
            grid-column: 2 / 4;
            background: var(--accent);
            color: white;
            font-weight: 700;
        }

        .pricing-grid .congress-title-pediatria {
            grid-column: 4 / 6;
            background: var(--accent);
            color: white;
            font-weight: 700;
        }

        .pricing-grid .congress-title-citometria {
            grid-column: 6 / 9;
            background: #4ABDD6;
            color: white;
            font-weight: 700;
        }

        .pricing-grid .congress-title-enfermeria {
            grid-column: 9 / 11;
            background: #666666;
            color: white;
            font-weight: 700;
        }

        /* Subcategorías - estilos base */
        .pricing-grid .subcategory {
            font-size: 0.7rem;
            color: white;
            font-weight: 600;
        }

        /* Subcategorías con colores específicos por congreso */
        .pricing-grid .subcategory.socios-sah,
        .pricing-grid .subcategory.no-socios {
            background: var(--accent); /* Congreso Argentino */
        }

        .pricing-grid .subcategory.socios-sah-pediatria,
        .pricing-grid .subcategory.no-socios-pediatria {
            background: var(--accent); /* Congreso Pediatría */
        }

        .pricing-grid .subcategory.socios-sah-citometria,
        .pricing-grid .subcategory.socios-grcf,
        .pricing-grid .subcategory.no-socios-citometria {
            background: #4ABDD6; /* Citometría */
        }

        .pricing-grid .subcategory.socios-sah-enfermeria,
        .pricing-grid .subcategory.no-socios-enfermeria {
            background: #666666; /* Enfermería */
        }

        /* Categorías de filas */
        .pricing-grid .category-label {
            background: #666666;
            color: white;
            font-weight: 700;
            font-size: 0.85rem;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            min-height: 70px;
            padding: 1.2rem 1rem;
        }

        /* Precios */
        .pricing-grid .price,
        .pricing-grid .price-sin-cargo {
            color: #2c3e50;
            font-family: 'Inter', sans-serif;
            font-size: 0.9rem;
            font-weight: 700;
            min-height: 70px;
        }

        .pricing-grid .price-sin-cargo {
            color: var(--accent);
            font-weight: 700;
        }

        /* Celdas vacías */
        .pricing-grid .empty-cell {
            background-color: #f9f9f9;
            color: transparent;
        }

        /* VERSIÓN MÓVIL ALTERNATIVA - OCULTA POR DEFECTO */
        .pricing-mobile {
            display: none;
            width: 100%;
        }

        .pricing-congress {
            margin-bottom: 2rem;
            border: 2px solid #ddd;
            border-radius: 10px;
            overflow: hidden;
            background: white;
        }

        .congress-header {
            padding: 1rem;
            font-weight: 700;
            color: white;
            text-align: center;
            font-size: 1rem;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .congress-header.argentino {
            background: var(--accent);
        }

        .congress-header.pediatria {
            background: var(--accent);
        }

        .congress-header.citometria {
            background: #4ABDD6;
        }

        .congress-header.enfermeria {
            background: #666666;
        }

        .pricing-rows {
            background: white;
        }

        .pricing-row {
            display: flex;
            border-bottom: 1px solid #e9ecef;
            min-height: 60px;
        }

        .pricing-row:last-child {
            border-bottom: none;
        }

        .category-mobile {
            flex: 2;
            background: #666666;
            color: white;
            padding: 1rem;
            font-weight: 700;
            font-size: 0.8rem;
            display: flex;
            align-items: center;
            text-transform: uppercase;
        }

        .price-columns {
            flex: 3;
            display: flex;
        }

        .price-column {
            flex: 1;
            padding: 1rem 0.5rem;
            border-left: 1px solid #e9ecef;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            min-height: 60px;
        }

        .price-column-header {
            font-size: 0.65rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
            text-transform: uppercase;
            color: #666;
            text-align: center;
            line-height: 1.2;
        }

        .price-column-value {
            font-size: 0.8rem;
            font-weight: 700;
            color: #2c3e50;
            text-align: center;
        }

        .price-column-value.sin-cargo {
            color: var(--accent);
        }

        .price-column-value.empty {
            color: transparent;
        }

        /* Separador entre secciones */
        .section-divider {
            height: 2px;
            background: #666666;
            margin: 0;
            border: none;
        }

        /* Secciones de contenido */
        .payment-section,
        .bank-info,
        .registration-info {
            width: 100% !important;
            background: transparent;
            padding: 2.5rem;
            border-radius: 0;
            margin-bottom: 0;
            box-shadow: none;
        }

        /* Formas de pago */
        .payment-title {
            color: #2c3e50;
            font-size: 1.5rem;
            font-weight: 700;
            font-family: 'Inter', sans-serif;
            text-align: center;
            margin-bottom: 2rem;
            text-transform: uppercase;
            letter-spacing: 1px;
        }

        .payment-methods {
            display: flex;
            justify-content: center;
            gap: 3rem;
            flex-wrap: wrap;
            align-items: flex-start;
        }

        .payment-method {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            max-width: 180px;
            transition: transform 0.3s ease;
        }

        .payment-method:hover {
            transform: translateY(-5px);
        }

        .payment-icon {
            font-size: 2.5rem;
            margin-bottom: 1rem;
            filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
        }

        .payment-label {
            font-size: 0.85rem;
            color: #2c3e50;
            font-family: 'Inter', sans-serif;
            font-weight: 500;
            line-height: 1.4;
            text-align: center;
        }

        /* Información bancaria */
        .bank-notice {
            text-align: center;
            margin-bottom: 2.5rem;
            color: #2c3e50;
            font-family: 'Inter', sans-serif;
            font-weight: 500;
            line-height: 1.6;
            padding: 1.5rem;
            background: #f8f9fa;
            border-radius: 8px;
            border-left: 4px solid var(--accent);
            font-size: 0.9rem;
        }

        .bank-notice strong {
            color: var(--accent);
            font-weight: 700;
        }

        .bank-details {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
            margin-bottom: 2rem;
        }

        .bank-item {
            text-align: center;
            padding: 1.5rem;
            background: #f8f9fa;
            border-radius: 8px;
            border: 1px solid #e9ecef;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .bank-item:hover {
            transform: translateY(-3px);
            box-shadow: 0 4px 15px rgba(0,0,0,0.1);
        }

        .bank-item h4 {
            color: #2c3e50;
            font-size: 1rem;
            font-weight: 700;
            font-family: 'Inter', sans-serif;
            margin-bottom: 1rem;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .bank-item p {
            color: #6c757d;
            font-family: 'Inter', sans-serif;
            font-size: 0.85rem;
            line-height: 1.5;
            font-weight: 500;
        }

        /* Registro */
        .registration-info {
            text-align: center;
        }

        .registration-info p {
            color: #2c3e50;
            font-family: 'Inter', sans-serif;
            font-weight: 500;
            margin-bottom: 2rem;
            line-height: 1.6;
            font-size: 0.95rem;
        }

        .registration-info strong {
            color: var(--accent);
            font-weight: 700;
        }

        .registration-btn {
            background: linear-gradient(135deg, var(--accent), var(--accent-3));
            color: white;
            border: none;
            padding: 1.5rem 3rem;
            border-radius: 50px;
            font-size: 1.1rem;
            font-weight: 700;
            font-family: 'Inter', sans-serif;
            cursor: pointer;
            transition: all 0.3s ease;
            display: inline-flex;
            align-items: center;
            gap: 1rem;
            text-transform: uppercase;
            letter-spacing: 1px;
            box-shadow: 0 4px 15px rgba(244, 162, 97, 0.3);
            text-decoration: none;
        }

        .registration-btn:hover {
            background: linear-gradient(135deg, var(--accent), #d63031);
            transform: translateY(-3px);
            box-shadow: 0 8px 25px rgba(244, 162, 97, 0.4);
        }

        .registration-btn:active {
            transform: translateY(-1px);
        }

        .cursor-icon {
            font-size: 1.5rem;
            animation: bounce 2s infinite;
        }

        @keyframes bounce {
            0%, 20%, 50%, 80%, 100% {
                transform: translateY(0);
            }
            40% {
                transform: translateY(-5px);
            }
            60% {
                transform: translateY(-3px);
            }
        }

        /* RESPONSIVE BREAKPOINTS */

        /* Tablet responsive */
        @media (max-width: 1024px) {
            .pricing-grid {
                grid-template-columns: 160px repeat(9, 1fr);
            }
            
            .pricing-grid .category-label {
                font-size: 0.8rem;
                padding: 1rem 0.5rem;
            }
            
            .pricing-grid .subcategory {
                font-size: 0.7rem;
                padding: 0.8rem 0.3rem;
            }
            
            .pricing-grid .price,
            .pricing-grid .price-sin-cargo {
                font-size: 0.8rem;
                padding: 0.8rem 0.3rem;
            }
            
            .payment-methods {
                gap: 2rem;
            }
            
            .bank-details {
                grid-template-columns: repeat(2, 1fr);
                gap: 1.5rem;
            }
        }

        /* MÓVIL - CAMBIO COMPLETO A LAYOUT VERTICAL */
        @media (max-width: 768px) {
            .inscripciones-section-title {
                font-size: 2rem;
                margin-bottom: 2rem;
            }

            /* OCULTAR TABLA DESKTOP */
            .pricing-table {
                display: none !important;
            }

            /* MOSTRAR VERSIÓN MÓVIL */
            .pricing-mobile {
                display: block !important;
                width: 100%;
                padding: 0;
            }

            /* Formas de pago móvil */
            .payment-methods {
                flex-direction: column;
                gap: 1.5rem;
                align-items: center;
            }

            .payment-method {
                max-width: 250px;
            }
            
            .bank-details {
                grid-template-columns: 1fr;
                gap: 1.5rem;
            }
            
            .registration-btn {
                padding: 1.2rem 2rem;
                font-size: 0.9rem;
            }

            .payment-section,
            .bank-info,
            .registration-info {
                padding: 2rem 1.5rem;
            }

            .payment-title {
                font-size: 1.3rem;
            }
        }

        @media (max-width: 480px) {
            .inscripciones-section-content {
                padding: 0 1rem;
            }

            .inscripciones-section-title {
                font-size: 1.8rem;
            }

            .congress-header {
                font-size: 0.9rem;
                padding: 0.8rem;
            }

            .category-mobile {
                font-size: 0.75rem;
                padding: 0.8rem;
            }

            .price-column {
                padding: 0.8rem 0.3rem;
            }

            .price-column-header {
                font-size: 0.6rem;
            }

            .price-column-value {
                font-size: 0.75rem;
            }

            .payment-section,
            .bank-info,
            .registration-info {
                padding: 1.5rem 1rem;
            }

            .payment-title {
                font-size: 1.2rem;
            }

            .registration-btn {
                padding: 1rem 1.5rem;
                font-size: 0.8rem;
            }
        }
    
 

/* Registro */
.registration-info {
    text-align: center;
}

.registration-info p {
    color: #2c3e50;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    margin-bottom: 2rem;
    line-height: 1.6;
    font-size: 0.95rem;
}

.registration-info strong {
    color: var(--accent);
    font-weight: 700;
}

.registration-btn {
    background: linear-gradient(135deg, var(--accent), var(--accent-3));
    color: white;
    border: none;
    padding: 1.5rem 3rem;
    border-radius: 50px;
    font-size: 1.1rem;
    font-weight: 700;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 15px rgba(244, 162, 97, 0.3);
    text-decoration: none;
}

.registration-btn:hover {
    background: linear-gradient(135deg, var(--accent), #d63031);
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(244, 162, 97, 0.4);
}

.registration-btn:active {
    transform: translateY(-1px);
}

.cursor-icon {
    font-size: 1.5rem;
    animation: bounce 2s infinite;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(-5px);
    }
    60% {
        transform: translateY(-3px);
    }
}

/* Footer */
.footer {
    background: #5b1b8a;
    color: #ffffff;
    padding: 3rem 1.5rem;
}

.footer a {
    color: #ffffff;
    text-decoration: none;
    opacity: 0.9;
}

footer a:hover {
    opacity: 1;
    text-decoration: underline;
}


.footer-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    padding: 0 2rem;
    position: relative;
}

/* Línea vertical separadora */
.footer-content::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 100%;
    background: white;
}

.footer-section {
    width: 50%;
    display: flex;
    align-items: flex-start;
    text-align: left;
    gap: 1rem; /* Reducido de 2rem a 1rem */
    padding: 0 2rem;
}

.footer-logos-inline {
    display: flex;
    gap: 1rem;
    align-items: center;
    flex-shrink: 0;
}

.footer-inline-logo {
    height: 60px;
    width: auto;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0.9;
}

.footer-inline-logo:hover {
    transform: scale(1.05);
    opacity: 1;
}

.footer-logo {
    flex-shrink: 0;
    max-width: 80px; /* Limitar el ancho del logo */
    margin-right: 0.5rem; /* Reducir margen derecho */
}

/* Logo SAH normal */
.footer-section:first-child .footer-logo-img {
    height: 80px;
    width: auto;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0.9;
}

/* Logo Grupo Uno 40% más chico */
.footer-section:last-child .footer-logo-img {
    height: 48px;
    width: auto;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0.9;
}

.footer-logo-img:hover {
    transform: scale(1.05);
    opacity: 1;
}

.footer-text-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
    max-width: 100%;
}

.footer-line {
    color: #bdc3c7;
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 0.85rem;
    margin: 0.1rem 0;
    line-height: 1.2;
    display: block;
    width: 100%;
}

.footer-title {
    color: white;
    font-weight: 600;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.3rem;
}

.footer-line a {
    color: #87CEEB;
    text-decoration: none;
}

.footer-line a:hover {
    color: white;
    text-decoration: underline;
}

/* Línea horizontal separadora */
.footer-bottom {
    text-align: center;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid white;
    color: #bdc3c7;
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 0.8rem;
}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.info-card, .invitado-card {
    animation: fadeInUp 0.6s ease forwards;
}

/* Responsive mejorado */
@media (max-width: 1200px) {
    .main-nav {
        gap: 1.5rem;
    }
    
    .nav-item,
    .nav-link {
        font-size: 0.85rem;
        padding: 0.5rem 0.6rem;
    }
    
    .dropdown-content {
        min-width: 250px;
    }
}

@media (max-width: 1024px) {
    .main-nav {
        gap: 1.2rem;
    }
    
    .nav-item,
    .nav-link {
        font-size: 0.8rem;
        padding: 0.5rem 0.5rem;
    }
    
    /* Tablet responsive para tabla de inscripciones */
    .pricing-grid {
        grid-template-columns: 160px repeat(9, 1fr);
    }
    
    .pricing-grid .category-label {
        font-size: 0.8rem;
        padding: 1rem 0.5rem;
    }
    
    .pricing-grid .subcategory {
        font-size: 0.7rem;
        padding: 0.8rem 0.3rem;
    }
    
    .pricing-grid .price,
    .pricing-grid .price-sin-cargo {
        font-size: 0.8rem;
        padding: 0.8rem 0.3rem;
    }
    
    .payment-methods {
        gap: 2rem;
    }
    
    .bank-details {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }
    
    .info-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 1.2rem;
    }

    .schedule-grid {
        grid-template-columns: 100px repeat(auto-fit, minmax(120px, 1fr));
        font-size: 0.7rem;
    }
}

/* Mobile Responsive */
@media (max-width: 768px) {
    /* Hero móvil */
    .hero-content {
        flex-direction: column;
        text-align: center;
        gap: 2rem;
    }

    .hero-text {
        margin-left: 0;
        max-width: 100%;
        text-align: center;
    }

    .hero-number,
    .hero-congreso,
    .hero-argentino,
    .hero-hematologia {
        font-size: 2.5rem !important;
    }

    .hero-date, .hero-location {
        font-size: 1.2rem;
    }

    .hero-icons {
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        margin-top: 0;
    }
    
    .hero-icons-image {
        margin-top: 0;
    }

    /* Action section móvil */
    .action-content {
        flex-direction: column;
        background: linear-gradient(180deg, #5DADE2 0%, #F8C471 100%);
        align-items: center;
    }

    /* Info section móvil */
    .info-section-content {
        flex-direction: column;
        gap: 2rem;
    }

    .info-section-title {
        width: 100%;
        text-align: center;
        margin-bottom: 1rem;
    }

    .info-grid {
        width: 100%;
        grid-template-columns: repeat(3, 1fr);
        gap: 1rem;
    }

    .info-text {
        font-size: 0.65rem;
    }

    /* Tabla de inscripciones móvil */
    .pricing-grid {
        display: block;
        width: 100%;
    }
    
    .pricing-grid > div {
        display: block;
        width: 100%;
        border-right: none;
        border-bottom: 1px solid #e9ecef;
        min-height: 50px;
        font-size: 0.75rem;
        margin-bottom: 0.5rem;
    }
    
    .payment-methods {
        flex-direction: column;
        gap: 1.5rem;
        align-items: center;
    }
    
    .bank-details {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .payment-method {
        max-width: 250px;
    }
    
    .registration-btn {
        padding: 1.2rem 2rem;
        font-size: 0.9rem;
    }

    .inscripciones-section-title {
        font-size: 2rem;
        margin-bottom: 2rem;
    }

    /* Footer móvil */
    .footer-content {
        flex-direction: column;
        gap: 2rem;
    }
    
    .footer-content::after {
        display: none;
    }
    
    .footer-section {
        width: 100%;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 1rem;
        padding: 0;
    }
    
    .footer-logos-inline {
        justify-content: center;
    }
    
    .footer-inline-logo {
        height: 50px;
    }
    
    .footer-text-content {
        text-align: center;
        align-items: center;
    }
    
    .footer-section:first-child .footer-logo-img,
    .footer-section:last-child .footer-logo-img {
        height: 70px;
    }
}

@media (max-width: 1200px) {
    .dropdown-content {
        min-width: 250px;
    }
}

@media (max-width: 1024px) {
    .dropdown-content {
        min-width: 250px;
    }
}

/* Fix para Edge y Firefox - Ajuste adicional del contenedor */
@media (max-width: 1400px) {
    .header-content {
        max-width: 1300px;
        padding: 0 1rem;
    }
    
    .main-nav {
        gap: 0.2rem;
    }
    
    .nav-item, .nav-link {
        padding: 0.6rem 0.5rem;
        font-size: 0.8rem;
    }
    
    .register-btn {
        padding: 0.7rem 1rem;
        font-size: 0.85rem;
    }
}

/* Fix específico para Chrome */
@media (max-width: 1400px) {
    @supports (-webkit-appearance: none) {
        .header-content {
            max-width: 1400px;
            gap: 0.4rem;
        }
        
        .main-nav {
            gap: 0.25rem;
        }
        
        .nav-item, .nav-link {
            padding: 0.7rem 0.6rem;
            font-size: 0.82rem;
        }
        
        .register-btn {
            padding: 0.75rem 1.1rem;
            font-size: 0.87rem;
        }
    }
}

@media (max-width: 1200px) {
    @supports (-webkit-appearance: none) {
        .nav-item, .nav-link {
            font-size: 0.8rem;
            padding: 0.6rem 0.45rem;
        }
        
        .register-btn {
            font-size: 0.85rem;
            padding: 0.7rem 0.95rem;
        }
    }
}

/* Fix específico para navegadores que no manejan bien flexbox */
@supports not (gap: 0.3rem) {
    .main-nav {
        margin-right: -0.3rem;
    }
    
    .main-nav > * {
        margin-right: 0.3rem;
    }
}

/* Asegurar que el botón de inscripciones no se corte */
.register-btn {
    flex-shrink: 0 !important;
    min-width: fit-content;
}

/*  cambio del css para tablas html */
/* =================================
   PLAN B - TABLAS HTML TRADICIONALES
   Agregar al FINAL del archivo styles.css
   ================================= */

/* Contenedor de la tabla con scroll horizontal */










/* Tabla base */





/* Anchos específicos para Sheraton (12 columnas) */






/* Anchos específicos para Costa Galana (6 columnas) */






/* Headers de columnas */
.time-header-cell,
.room-header-cell {
    background: #495057 !important;
    color: white !important;
    padding: 8px 4px !important;
    font-weight: 600 !important;
    text-align: center !important;
    font-size: 0.75rem !important;
    line-height: 1.2 !important;
    vertical-align: middle !important;
    height: 60px !important;
    word-wrap: normal !important;
    hyphens: auto !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    box-sizing: border-box !important;
}

/* Celdas de horario */
.time-slot-cell {
    background: #6c757d !important;
    color: white !important;
    padding: 8px 4px !important;
    text-align: center !important;
    font-weight: 500 !important;
    vertical-align: middle !important;
    height: 50px !important;
    font-size: 0.7rem !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

/* Celdas de actividades */
.activity-cell {
    background: white !important;
    padding: 6px 4px !important;
    height: 50px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    border: 1px solid transparent !important;
    position: relative !important;
    font-size: 0.7rem !important;
    text-align: center !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
}

.activity-cell:hover {
    background: #f8f9fa !important;
    border-color: #3498db !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 3px 10px rgba(52, 152, 219, 0.2) !important;
}

/* Contenido de actividades */
.activity-content {
    font-weight: 600 !important;
    color: inherit !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    word-wrap: normal !important;
    hyphens: auto !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    max-width: 100% !important;
    display: block !important;
}

/* Tipos de celdas específicas */
.empty-cell {
    background: #f8f9fa !important;
    cursor: default !important;
    color: #6c757d !important;
}

.empty-cell:hover {
    transform: none !important;
    box-shadow: none !important;
    border-color: transparent !important;
    background: #f8f9fa !important;
}

.receso-cell {
    /*background: linear-gradient(135deg, #f9dede 0%, #f77474 100%) !important;*/
	background: linear-gradient(to right, #f5f5f5, #e0e0e0, #cccccc) !important;
}
	
    backdrop-filter: blur(10px) !important;
    color: #721c24 !important;
    font-weight: 600 !important;
}

.receso-cell:hover {
   /* background: linear-gradient(135deg, #f1b0b7 0%, #e74c3c 100%) !important;*/
   background: linear-gradient(to right, #f5f5f5, #e0e0e0, #cccccc) !important;
}

.eha-session {
    background: linear-gradient(135deg, #c6f4db 0%, #E6FFE6 100%) !important;
    backdrop-filter: blur(10px) !important;
    color: #2d5016 !important;
    font-weight: 600 !important;
}

.sponsor-novartis {
    background: linear-gradient(135deg, #fcc5a1 0%, #f48046 100%) !important;
    backdrop-filter: blur(10px) !important;
    color: #721c24 !important;
    font-weight: 600 !important;
}

.sponsor-pfizer {
    background: linear-gradient(135deg, #e8f5e8 0%, #c3e6cb 100%) !important;
    color: #2d5016 !important;
    font-weight: 600 !important;
}

/* Indicador de scroll para móviles */
@media (max-width: 768px) {
    
    
    @keyframes pulse {
        0% { background: #fff3cd; }
        50% { background: #ffe8a1; }
        100% { background: #fff3cd; }
    }
}

/* Responsive - Mantener anchos fijos pero ajustar tamaños */
@media (max-width: 1400px) {
    
    
    
    
    
    
    
    
    
    
    
    
    .time-header-cell, .room-header-cell {
        font-size: 0.7rem !important;
        padding: 6px 3px !important;
        height: 55px !important;
    }
    
    .time-slot-cell {
        font-size: 0.65rem !important;
        padding: 6px 3px !important;
        height: 45px !important;
    }
    
    .activity-cell {
        font-size: 0.65rem !important;
        padding: 4px 3px !important;
        height: 45px !important;
    }
}

@media (max-width: 1200px) {
    
    
    
    
    
    
    
    
    
    
    
    
    .time-header-cell, .room-header-cell {
        font-size: 0.65rem !important;
        padding: 5px 2px !important;
        height: 50px !important;
    }
    
    .time-slot-cell {
        font-size: 0.6rem !important;
        padding: 5px 2px !important;
        height: 40px !important;
    }
    
    .activity-cell {
        font-size: 0.6rem !important;
        padding: 3px 2px !important;
        height: 40px !important;
    }
}

@media (max-width: 1024px) {
    
    
    
    
    
    
    
    
    
    
    
    
    .time-header-cell, .room-header-cell {
        font-size: 0.6rem !important;
        padding: 4px 2px !important;
        height: 45px !important;
    }
    
    .time-slot-cell {
        font-size: 0.55rem !important;
        padding: 4px 2px !important;
        height: 35px !important;
    }
    
    .activity-cell {
        font-size: 0.55rem !important;
        padding: 2px 1px !important;
        height: 35px !important;
    }
}

@media (max-width: 768px) {
    
    
    
    
    
    
    
    
    
    
    
    
    .time-header-cell, .room-header-cell {
        font-size: 0.55rem !important;
        padding: 3px 1px !important;
        height: 40px !important;
    }
    
    .time-slot-cell {
        font-size: 0.5rem !important;
        padding: 3px 1px !important;
        height: 30px !important;
    }
    
    .activity-cell {
        font-size: 0.5rem !important;
        padding: 2px 1px !important;
        height: 30px !important;
    }
    
    .activity-content {
        font-size: 0.5rem !important;
        line-height: 1.1 !important;
    }
    
    
}

@media (max-width: 480px) {
    
    
    
    
    
    
    
    
    
    
    
    
    .time-header-cell, .room-header-cell {
        font-size: 0.5rem !important;
        padding: 2px 1px !important;
        height: 35px !important;
    }
    
    .time-slot-cell {
        font-size: 0.45rem !important;
        padding: 2px 1px !important;
        height: 25px !important;
    }
    
    .activity-cell {
        font-size: 0.45rem !important;
        padding: 1px !important;
        height: 25px !important;
    }
    
    .activity-content {
        font-size: 0.45rem !important;
    }
}

/* IMPORTANTE: Ocultar las grids CSS originales cuando se usan tablas */
.schedule-grid {
    display: none !important;
}

/* Mostrar solo las tablas HTML */


/* AGREGAR AL FINAL del CSS (después de los estilos de sponsors ya agregados) */

/* Sponsors adicionales para Viernes */
.sponsor-amgen {
    background: linear-gradient(135deg, #f3f7b9 0%, #e0dc79 100%) !important;
    backdrop-filter: blur(10px) !important;
    color: #2d5016 !important;
    font-weight: 600 !important;
}

.sponsor-amgen:hover {
    background: linear-gradient(135deg, #e8f2a5 0%, #d4d065 100%) !important;
}

.sponsor-knight {
    background: linear-gradient(135deg, #f3f7b9 0%, #e0dc79 100%) !important;
    backdrop-filter: blur(10px) !important;
    color: #2d5016 !important;
    font-weight: 600 !important;
}

.sponsor-knight:hover {
    background: linear-gradient(135deg, #e8f2a5 0%, #d4d065 100%) !important;
}

.sponsor-servier {
    background: linear-gradient(135deg, #f3f7b9 0%, #e0dc79 100%) !important;
    backdrop-filter: blur(10px) !important;
    color: #2d5016 !important;
    font-weight: 600 !important;
}

.sponsor-servier:hover {
    background: linear-gradient(135deg, #e8f2a5 0%, #d4d065 100%) !important;
}

.sponsor-gsk {
    background: linear-gradient(135deg, #f3f7b9 0%, #e0dc79 100%) !important;
    backdrop-filter: blur(10px) !important;
    color: #2d5016 !important;
    font-weight: 600 !important;
}

.sponsor-gsk:hover {
    background: linear-gradient(135deg, #e8f2a5 0%, #d4d065 100%) !important;
}

.sponsor-sanofi {
    background: linear-gradient(135deg, #f3f7b9 0%, #e0dc79 100%) !important;
    backdrop-filter: blur(10px) !important;
    color: #2d5016 !important;
    font-weight: 600 !important;
}

.sponsor-sanofi:hover {
    background: linear-gradient(135deg, #e8f2a5 0%, #d4d065 100%) !important;
}

.sponsor-roche {
    background: linear-gradient(135deg, #f3f7b9 0%, #e0dc79 100%) !important;
    backdrop-filter: blur(10px) !important;
    color: #2d5016 !important;
    font-weight: 600 !important;
}

.sponsor-roche:hover {
    background: linear-gradient(135deg, #e8f2a5 0%, #d4d065 100%) !important;
}

.sponsor-takeda {
    background: linear-gradient(135deg, #bdf4f9 0%, #57bed1 100%) !important;
    backdrop-filter: blur(10px) !important;
    color: #1a5a6b !important;
    font-weight: 600 !important;
}

.sponsor-takeda:hover {
    background: linear-gradient(135deg, #a8f1f7 0%, #46b5c9 100%) !important;
}

/* AGREGAR AL FINAL DE TU ARCHIVO styles.css */

/* Filas de RECESO con altura reducida */
.receso-cell {
    /*background: linear-gradient(135deg, #f9dede 0%, #f77474 100%) !important;*/
	background: linear-gradient(to right, #f5f5f5, #e0e0e0, #cccccc) !important;
    backdrop-filter: blur(10px) !important;
    color: #721c24 !important;
    font-weight: 600 !important;
    /* ALTURA REDUCIDA PARA RECESOS */
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
    padding: 2px 4px !important;
    font-size: 0.6rem !important;
    line-height: 1 !important;
}

.receso-cell:hover {
    /*background: linear-gradient(135deg, #f1b0b7 0%, #e74c3c 100%) !important;*/
	background: linear-gradient(to right, #f5f5f5, #e0e0e0, #cccccc) !important;
}

/* Clase específica para filas de receso - COMPATIBLE CON TODOS LOS NAVEGADORES */
.receso-row {
    height: 25px !important;
}

.receso-row td {
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
    padding: 2px 4px !important;
    vertical-align: middle !important;
}

/* Responsive para recesos */
@media (max-width: 768px) {
    .receso-cell {
        height: 20px !important;
        min-height: 20px !important;
        max-height: 20px !important;
        padding: 1px 2px !important;
        font-size: 0.5rem !important;
    }
    
    .receso-row {
        height: 20px !important;
    }
    
    .receso-row td {
        height: 20px !important;
        min-height: 20px !important;
        max-height: 20px !important;
        padding: 1px 2px !important;
    }
}

@media (max-width: 480px) {
    .receso-cell {
        height: 18px !important;
        min-height: 18px !important;
        max-height: 18px !important;
        padding: 1px !important;
        font-size: 0.45rem !important;
    }
    
    .receso-row {
        height: 18px !important;
    }
    
    .receso-row td {
        height: 18px !important;
        min-height: 18px !important;
        max-height: 18px !important;
        padding: 1px !important;
    }
}

/* Agregar estos estilos al final de styles.css */

/* Auspicios Section */
.auspicios-section {
    background: linear-gradient(180deg, #4ABDD6 0%, #f9c4a6 30%);
    padding: 4rem 0;
    position: relative;
}

.auspicios-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.1);
    z-index: 1;
}

.auspicios-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    padding: 0 2rem;
    position: relative;
    z-index: 2;
    gap: 3rem;
}

.auspicios-title-sidebar {
    width: 20%;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 2rem 0;
    flex-shrink: 0;
}

.auspicios-section-title {
    color: white;
    font-size: 2.2rem;
    font-weight: 700;
    font-family: 'Inter', sans-serif;
    text-align: left;
    margin: 0;
    line-height: 1.2;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
    letter-spacing: 1px;
}

.auspicios-grid-container {
    width: 80%;
    padding: 2rem 0;
}

.auspicios-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    align-items: center;
    justify-items: center;
}

.auspicio-card {
    background: white;
    border-radius: 12px;
    padding: 1rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 200px;
    height: 120px;
    border: 2px solid transparent;
}

.auspicio-card:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 8px 25px rgba(0,0,0,0.2);
    border-color: rgba(255,255,255,0.3);
}

.auspicio-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: all 0.3s ease;
    border-radius: 8px;
    max-width: 180px;
    max-height: 80px;
}

.auspicio-card:hover .auspicio-image {
    transform: scale(1.05);
}

.auspicio-image:not([src]) {
    background: #f0f0f0;
    border: 2px dashed #ccc;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    font-size: 0.8rem;
    text-align: center;
}

.auspicio-image:not([src])::before {
    content: "Logo Auspicio";
}

/* Responsive para Auspicios */
@media (max-width: 1024px) {
    .auspicios-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }
    
    .auspicios-section-title {
        font-size: 1.8rem;
    }
}

@media (max-width: 768px) {
    .auspicios-content {
        flex-direction: column;
        gap: 2rem;
    }
    
    .auspicios-title-sidebar {
        width: 100%;
        text-align: center;
        justify-content: center;
        padding: 1rem 0;
    }
    
    .auspicios-grid-container {
        width: 100%;
        padding: 1rem 0;
    }
    
    .auspicios-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.2rem;
    }
    
    .auspicios-section-title {
        font-size: 1.6rem;
        text-align: center;
    }
    
    .auspicio-card {
        max-width: 180px;
        height: 100px;
    }
}

@media (max-width: 480px) {
    .auspicios-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
        max-width: 200px;
        margin: 0 auto;
    }
    
    .auspicios-section-title {
        font-size: 1.4rem;
    }
    
    .auspicio-card {
        max-width: 160px;
        height: 90px;
    }
}

/* SECCIÓN AUTORIDADES - CORRECCIÓN DE LEGIBILIDAD MÓVIL */
/* Agregar estos estilos al final de tu archivo styles.css */

/* Base improvements for better readability */
.cargo-label {
    color: #666666;
    font-size: 0.75rem; /* Increased from 0.65rem */
    font-weight: 500; /* Increased from 400 */
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.3; /* Increased from 1.2 */
    margin-bottom: 0.5rem; /* Added margin */
}

.nombre-value {
    color: #2c3e50;
    font-size: 0.95rem; /* Increased from 0.85rem */
    font-weight: 500; /* Increased from 400 */
    line-height: 1.4; /* Increased from 1.3 */
}

/* Mobile specific improvements */
@media (max-width: 768px) {
    .autoridades-content {
        padding: 0; /* Remove extra padding */
    }
    
    .autoridades-main-content {
        padding: 1.5rem; /* Reduced from 2rem */
    }
    
    .autoridades-section-block {
        margin-bottom: 2rem; /* Reduced from 3rem */
    }
    
    .autoridades-section-header {
        font-size: 1.1rem; /* Increased from 1rem */
        margin-bottom: 1.2rem; /* Reduced from 1.5rem */
        font-weight: 700;
    }
    
    .autoridades-grid-layout {
        display: block; /* Change from grid to block */
        gap: 0;
    }
    
    .autoridades-column {
        margin-bottom: 1.5rem;
    }
    
    .autoridad-row {
        margin-bottom: 1.2rem; /* Increased spacing between items */
        padding: 0.8rem; /* Add padding for better touch targets */
        background: rgba(248, 249, 250, 0.5); /* Subtle background */
        border-radius: 6px;
        border-left: 3px solid var(--accent); /* Visual separator */
    }
    
    .cargo-label {
        font-size: 0.85rem; /* Significantly increased */
        font-weight: 600; /* Bolder */
        color: var(--accent); /* More prominent color */
        margin-bottom: 0.6rem;
        letter-spacing: 0.8px;
    }
    
    .nombre-value {
        font-size: 1.05rem; /* Significantly increased */
        font-weight: 500;
        line-height: 1.5;
        color: #2c3e50;
    }
    
    /* Tab buttons mobile improvements */
    .autoridades-tab-btn {
        padding: 12px 20px; /* Increased padding */
        min-height: 50px; /* Ensure touch-friendly height */
    }
    
    .tab-text {
        font-size: 0.8rem; /* Increased from 0.75rem */
        font-weight: 700;
        line-height: 1.3;
    }
    
    .autoridades-section-title {
        font-size: 1.4rem; /* Increased */
        line-height: 1.3;
    }
}

/* Very small screens (phones in portrait) */
@media (max-width: 480px) {
    .autoridades-main-content {
        padding: 1rem;
    }
    
    .cargo-label {
        font-size: 0.9rem; /* Even larger for very small screens */
        margin-bottom: 0.7rem;
    }
    
    .nombre-value {
        font-size: 1.1rem; /* Even larger for very small screens */
        line-height: 1.6;
    }
    
    .autoridades-section-header {
        font-size: 1.2rem;
        margin-bottom: 1rem;
    }
    
    .autoridad-row {
        padding: 1rem;
        margin-bottom: 1.5rem;
    }
    
    .tab-text {
        font-size: 0.85rem;
        line-height: 1.4;
    }
}

/* Tablet specific adjustments */
@media (min-width: 769px) and (max-width: 1024px) {
    .cargo-label {
        font-size: 0.8rem;
    }
    
    .nombre-value {
        font-size: 1rem;
    }
    
    .autoridades-grid-layout {
        grid-template-columns: repeat(2, 1fr); /* 2 columns instead of 3 */
        gap: 2rem;
    }
}


/* ESTILOS PARA TÍTULOS DINÁMICOS DE AUTORIDADES */
/* Agregar al final de styles.css */

.autoridades-section-title {
    color: #2c3e50;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    margin: 0;
    writing-mode: horizontal-tb;
    transform: rotate(0deg);
    letter-spacing: 1px;
    line-height: 1.2; /* Mejorar espaciado entre líneas */
    transition: all 0.3s ease; /* Transición suave al cambiar */
}

/* Responsive para títulos más largos */
@media (max-width: 1024px) {
    .autoridades-section-title {
        font-size: 1.4rem;
        line-height: 1.3;
    }
}

@media (max-width: 768px) {
    .autoridades-title-sidebar {
        width: 100%;
        text-align: center;
        justify-content: center;
        padding: 1rem 0.5rem;
    }
    
    .autoridades-section-title {
        font-size: 1.2rem;
        line-height: 1.4;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .autoridades-section-title {
        font-size: 1rem;
        line-height: 1.5;
        letter-spacing: 0.5px;
    }
}

/* ====== COMPACT MODE para Sede Sheraton en desktop ====== */
@media (min-width: 1200px) {
  /* Ancho total ~1050px: 60 (hora) + 11*90 (salones) */
  

  

  

  /* Títulos de salas: más chicos, sin partir palabras */
  .time-header-cell,
  .room-header-cell {
    font-size: 0.68rem !important;
    line-height: 1.15 !important;
    padding: 6px 4px !important;
    white-space: normal !important;      /* permite varias líneas */
    word-break: normal !important;       /* no parte palabras */
    overflow-wrap: normal !important;    /* no fuerza cortes */
    hyphens: none !important;            /* sin guiones automáticos */
    height: 52px !important;
  }

  /* Horarios y actividades: compactos pero legibles */
  .time-slot-cell {
    font-size: 0.66rem !important;
    line-height: 1.1 !important;
    padding: 6px 3px !important;
    height: 46px !important;
  }

  .activity-cell,
  .activity-content {
    font-size: 0.64rem !important;
    line-height: 1.15 !important;
    padding: 4px 3px !important;
    height: 46px !important;
  }
}

/* En móviles y tablets se mantiene el scroll horizontal del contenedor */


/* === Program cell text integrity (no intra-word breaks) + visible borders (2025-08-31) === */




.activity-cell, .room-header-cell, .time-header-cell {
  word-break: keep-all;       /* do not break words */
  overflow-wrap: normal;      /* don't wrap within long words */
  hyphens: manual;            /* no auto hyphenation */
}

.activity-cell .activity-content, 
.activity-cell .activity-content * {
  white-space: normal;        /* allow wrapping at spaces/BR only */
}

.activity-cell .activity-content strong {
  font-weight: 700;
}
/* === end Program cell text integrity === */

/* ============================================ */
/* ACTUALIZACIONES PARA PROGRAMA Y MODAL */
/* AGREGAR AL FINAL DE styles.css */
/* ============================================ */

/* TABLAS AL 100% DEL ANCHO DEL CONTENEDOR */






/* COLUMNAS CON ANCHOS PROPORCIONALES */








/* TEXTO MÁS GRANDE Y LEGIBLE */
.time-header-cell, 
.room-header-cell {
    font-size: 0.85rem !important;
    line-height: 1.3 !important;
    padding: 8px 6px !important;
    height: auto !important;
    min-height: 60px !important;
    word-wrap: break-word !important;
    hyphens: none !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
}

.time-slot-cell {
    font-size: 0.8rem !important;
    line-height: 1.2 !important;
    padding: 8px 6px !important;
    height: auto !important;
    min-height: 50px !important;
}

.activity-cell {
    font-size: 0.8rem !important;
    line-height: 1.3 !important;
    padding: 8px 6px !important;
    height: auto !important;
    min-height: 50px !important;
}

.activity-content {
    font-size: 0.8rem !important;
    line-height: 1.3 !important;
    word-wrap: break-word !important;
    hyphens: none !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
}

/* SEPARADORES DE CELDAS MÁS VISIBLES */




.time-header-cell,
.room-header-cell {
    background: #495057 !important;
    border: 1px solid #343a40 !important;
}

.time-slot-cell {
    background: #6c757d !important;
    border: 1px solid #495057 !important;
}

.receso-cell {
    background: linear-gradient(to right, #f5f5f5, #e0e0e0, #cccccc) !important;
    border: 1px solid #999 !important;
}

/* RESPONSIVE MEJORADO PARA TEXTO MÁS GRANDE */
@media (max-width: 1200px) {
    .time-header-cell, .room-header-cell {
        font-size: 0.8rem !important;
        padding: 6px 4px !important;
        min-height: 55px !important;
    }
    
    .time-slot-cell {
        font-size: 0.75rem !important;
        padding: 6px 4px !important;
        min-height: 45px !important;
    }
    
    .activity-cell,
    .activity-content {
        font-size: 0.75rem !important;
        padding: 6px 4px !important;
        min-height: 45px !important;
    }
}

@media (max-width: 768px) {
    .time-header-cell, .room-header-cell {
        font-size: 0.75rem !important;
        padding: 5px 3px !important;
        min-height: 50px !important;
    }
    
    .time-slot-cell {
        font-size: 0.7rem !important;
        padding: 5px 3px !important;
        min-height: 40px !important;
    }
    
    .activity-cell,
    .activity-content {
        font-size: 0.7rem !important;
        padding: 5px 3px !important;
        min-height: 40px !important;
    }
}

@media (max-width: 480px) {
    .time-header-cell, .room-header-cell {
        font-size: 0.7rem !important;
        padding: 4px 2px !important;
        min-height: 45px !important;
    }
    
    .time-slot-cell {
        font-size: 0.65rem !important;
        padding: 4px 2px !important;
        min-height: 35px !important;
    }
    
    .activity-cell,
    .activity-content {
        font-size: 0.65rem !important;
        padding: 4px 2px !important;
        min-height: 35px !important;
    }
}

/* MEJORAS DEL MODAL */
.modal-header {
    position: relative !important;
    padding: 20px 30px !important;
}

/* Nuevo campo FORMATO */
.modal-formato {
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    color: rgba(255, 255, 255, 0.9) !important;
    margin-bottom: 8px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

/* Título más pequeño */
.modal-title {
    font-size: 1.3rem !important;
    font-weight: 600 !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

/* Botón X más funcional */
.modal-close {
    position: absolute !important;
    top: 15px !important;
    right: 20px !important;
    background: rgba(255, 255, 255, 0.2) !important;
    border: none !important;
    color: white !important;
    width: 35px !important;
    height: 35px !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    font-size: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s ease !important;
    z-index: 10 !important;
}

.modal-close:hover {
    background: rgba(255, 255, 255, 0.3) !important;
    transform: rotate(90deg) !important;
}

/* Meta información en filas separadas */
/* Chips en línea y del largo del contenido */
.modal-meta {
  margin-top: 10px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.modal-meta-item {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  max-width: 100% !important;
  padding: 6px 12px !important;
  border-radius: 999px !important;
  opacity: 0.9 !important;
}


.modal-meta-icon {
    margin-right: 8px !important;
}

/* Sección de integrantes mejorada */
.modal-body {
    padding: 25px !important;
    max-height: 60vh !important;
    overflow-y: auto !important;
}

.modal-section-title {
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    color: #2c3e50 !important;
    margin-bottom: 15px !important;
    padding-bottom: 8px !important;
    border-bottom: 2px solid #3498db !important;
}

#m-integrantes {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

#m-integrantes li {
    padding: 8px 0 !important;
    border-bottom: 1px solid #e9ecef !important;
    font-size: 0.9rem !important;
    line-height: 1.4 !important;
    color: #495057 !important;
}

#m-integrantes li:last-child {
    border-bottom: none !important;
}

/* Asegurar que el overlay funcione */
.activity-modal-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: rgba(0, 0, 0, 0.7) !important;
    backdrop-filter: blur(5px) !important;
    z-index: 10000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: all 0.4s ease !important;
}

.activity-modal-overlay.active {
    opacity: 1 !important;
    visibility: visible !important;
}

.activity-modal {
    background: white !important;
    border-radius: 20px !important;
    max-width: 90vw !important;
    width: 600px !important;
    max-height: 90vh !important;
    overflow: hidden !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3) !important;
    transform: scale(0.8) translateY(30px) !important;
    transition: all 0.4s ease !important;
}

.activity-modal-overlay.active .activity-modal {
    transform: scale(1) translateY(0) !important;
}

/* ==== FIX COLORES Y LEGIBILIDAD (sobrescribe al final) ==== */

/* Dejá que las reglas específicas pinten el fondo; evitamos forzar blanco */


/* Cabeceras (fila 1) y columna de horarios (columna 1) con sus colores */




/* Texto más grande, con salto de línea, sin modificar anchos */


/* ===== Ajuste de tamaño en celdas (~60%) ===== */



/* ====== Fix overflow general y hero en móviles ====== */
html, body { max-width: 100%; overflow-x: hidden; }

/* No cortar nada del hero ni secciones, pero sin “empujar” el viewport */
.hero, .header, .action-section, .info-section, .autoridades-section, 

/* Refuerzo para hero en pantallas chicas */
@media (max-width: 768px){
  .hero-content { margin-left: 0 !important; padding: 0 1rem; }
  .hero-text { margin-left: 0 !important; max-width: 100% !important; }
  .sah-logo, .hero-icons-image, .hero-icons-image1 { max-width: 100%; height: auto; }
}

/* Cuando el menú está abierto, evitamos el scroll de fondo */
body.menu-open { overflow: hidden; }

/* Por si alguna tabla no tiene ancho específico, forzamos mínimo para que haya scroll horizontal */


/* ===== FIX PROGRAMA: ancho + scroll horizontal ===== */

/* El contenedor debe scrollear en X */


/* Quitar el layout fijo y el width:100% que afina columnas */


/* Anchos reales por sede (crea el scroll) */



/* Evitar que las celdas clave se encojan */



/* (opcional) una pista visual en móviles */
@media (max-width: 768px){
  
}

/* Tabs */
.invitados-tabs-container { margin-bottom: 1.5rem; }
.invitados-tabs {
  display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center;
}
.invitados-tab-btn {
  background: rgba(255,255,255,0.9);
  border: 0;
  padding: .9rem 1.2rem;
  font-weight: 700;
  letter-spacing: .5px;
  border-radius: 10px;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.invitados-tab-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.invitados-tab-btn.active {
  background: #fff;
  box-shadow: 0 10px 28px rgba(0,0,0,.12);
  outline: 2px solid rgba(255,255,255,.6);
}

/* Contenido de tabs */
.invitados-tab-content { display: none; }
.invitados-tab-content.active { display: block; animation: fadeIn .35s ease; }

/* Grid de cards */
.invitados-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 1.5rem;
}

@media (max-width: 1024px) {
  .invitados-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 768px) {
  .invitados-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 480px) {
  .invitados-grid { grid-template-columns: 1fr; }
}

/* Card */
.invitado-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 1.25rem 1rem 1.2rem;
  text-align: center;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  border: 1px solid rgba(0,0,0,.06);
  transition: transform .2s ease, box-shadow .2s ease;
}
.invitado-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(0,0,0,.12); }

/* Foto (elige circle o rounded) */
 
.invitado-foto {
  width: 100px;   /* antes 160px */
  height: 100px;  /* antes 160px */
  margin: 0 auto 0.6rem;  /* un poco menos de margen inferior */
  overflow: hidden;
  background: #f3f4f6;
  display: grid;
  place-items: center;
}

.invitado-foto img { width: 100%; height: 100%; object-fit: cover; }
.invitado-foto.circle { border-radius: 50%; }
.invitado-foto.rounded { border-radius: 14px; }

/* Tipografías */
.invitado-nombre {
  font-weight: 400;
  font-size: 0.6rem;
  color: #111827;
  margin: 0 0 .35rem 0;
}
.invitado-pais, .invitado-inst {
  margin: 0; line-height: 1.35;
  color: #374151; font-size: .9rem;
}
.invitado-pais { opacity: .85; }
.invitado-inst { opacity: .9; }

/* === Ajustes Invitados: cards angostas + foto rectangular === */

/* 1) Más columnas (cards más angostas) en desktop */
.invitados-grid {
  grid-template-columns: repeat(5, minmax(160px, 1fr)); /* antes 4 */
  gap: 1rem; /* un poco menos de espacio */
}

/* 2) Card más angosta */
.invitado-card {
  max-width: 190px;      /* fuerza ancho menor */
  margin: 0 auto;        /* centra cada card en su celda */
  padding: 0.8rem 0.7rem; /* menos padding */
}

/* 3) Foto POR DEFECTO: mantené cuadrada (para quienes quieran 'circle') */
.invitado-foto {
  width: 90px;  /* un poco más chica */
  height: 90px; /* cuadrada por si usás .circle */
  margin-bottom: 0.6rem;
}

/* 4) Foto RECTANGULAR (vertical): usá también esta clase extra 'portrait' en el HTML */
.invitado-foto.portrait {
  width: 90px;         /* más angosta */
  height: 120px;       /* más alta = rectangular */
  border-radius: 12px; /* bordes redondeados agradables */
}

/* Tipos de borde compatibles */
.invitado-foto.rounded { border-radius: 12px; } /* rectangulares */
.invitado-foto.circle  { border-radius: 50%; }  /* solo si es cuadrada */

/* === Invitados: layout responsive 6/4/2/1 + cards angostas + foto rectangular === */

/* Base: 6 columnas en desktop grande */
.invitados-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1rem;
}

/* 4 columnas en tablet/desktop chico */
@media (max-width: 1200px) {
  .invitados-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* 2 columnas en móviles medianos */
@media (max-width: 768px) {
  .invitados-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 1 columna en móviles chicos */
@media (max-width: 460px) {
  .invitados-grid {
    grid-template-columns: 1fr;
  }
}

/* Título sección invitados con degradé tipo inscripciones */
.invitados-title {
  text-align: center;
  font-size: 2rem;
  font-weight: 800;
  margin-bottom: 2rem;
  letter-spacing: 1px;

  background: linear-gradient(90deg, #004a6b, #097da4, #ef781a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}


/* Card más angosta y compacta */
.invitado-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 0.9rem 0.8rem;
  text-align: center;
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
  border: 1px solid rgba(0,0,0,.06);
  transition: transform .25s ease, box-shadow .25s ease;
}

.invitado-card:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow: 0 12px 26px rgba(0,0,0,.15);
}

/* Foto rectangular (vertical). Usar junto con .rounded para bordes suaves */
.invitado-foto {
  width: 110px;              /* tamaño compacto por defecto */
  height: 110px;             /* si usás .circle, queda cuadrada */
  margin: 0 auto 0.6rem;
  overflow: hidden;
  display: grid; place-items: center;
  background: #f3f4f6;
}
.invitado-foto img { width: 100%; height: 100%; object-fit: cover; }

/* Rectangular vertical */
.invitado-foto.portrait {
  width: 110px;
  height: 140px;            /* hace la forma rectangular */
  border-radius: 12px;      /* bordes redondeados */
}

/* Bordes según estilo */
.invitado-foto.rounded { border-radius: 12px; }
.invitado-foto.circle  { border-radius: 50%; } /* usar solo cuando sea cuadrada */

/* Tipografías un poco más chicas para cards angostas */
.invitado-nombre { font-size: 0.8rem; font-weight: 400; margin: 0 0 .3rem; }
.invitado-pais, .invitado-inst { font-size: 0.8rem; line-height: 1.0; margin: 0; }

/* Logos en tabs de invitados */
.invitado-tab-logo {
  height: 22px;          /* ajusta el tamaño según necesidad */
  margin-right: 8px;
  vertical-align: middle;
}
.invitados-tab-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;              /* espacio entre logo y texto */
  font-weight: 700;
}

/* Base */
.invitados-tab-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-weight: 700;
  border-radius: 10px;
  cursor: pointer;
  padding: .7rem 1rem;
  border: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  color: #fff;
}

/* Colores específicos */









 

/* Logo */
.invitado-tab-logo {
  height: 22px;
  margin-right: 6px;
  vertical-align: middle;
}



/* === Programa: spacing & scroll alignment (2025-09-25) === */
.programa-tabs-container { margin-top: 10px; }
.programa-tabs { margin-bottom: 18px; justify-content: center; }
.programa-tab-content { 
  display: none; 
  scroll-margin-top: var(--header-offset, 112px); 
  text-align: center;
  padding: 8px 0 0;
}
.programa-tab-content.active { display: block; animation: fadeIn .35s ease; }

/* Títulos dentro de los paneles del programa */
.programa-tab-content 

/* Botón PDF centrado y separado de tabs */
.programa-tab-content .btn-programa {
  display: inline-block;
  margin: 12px auto 8px;
}

/* Mayor separación visual entre barra de tabs y contenido */
.programa-tabs + .programa-tab-content,
.programa-tabs + .invitados-tab-content {
  margin-top: 12px;
}

/* Back-to-top button */
.btn-backtop{ z-index:10000; 
  position: fixed;
  right: 18px;
  bottom: 18px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1px solid #4ABDD6;
  background: #EAF7FB;
  color: #0b4a5a;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 22px rgba(74,189,214,.18);
  cursor: pointer;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
  z-index: 50;
}
.btn-backtop svg{ width: 22px; height: 22px; }
.btn-backtop:hover{ box-shadow: 0 10px 26px rgba(74,189,214,.24); }
.btn-backtop.show{
  opacity: 1; transform: translateY(0);
  pointer-events: auto;
}
/* === Fin Programa spacing & back-to-top === */


/* === Paleta tabs suave FINAL (2025-09-25) === */
:where(.invitados-tabs,.programa-tabs) .invitados-tab-btn,
:where(.invitados-tabs,.programa-tabs) .programa-tab-btn{
  background:#EAF7FB !important;
  border:1px solid #4ABDD6 !important;
  color:#0b4a5a !important;
}
:where(.invitados-tabs,.programa-tabs) .invitados-tab-btn:hover,
:where(.invitados-tabs,.programa-tabs) .invitados-tab-btn:focus-visible,
:where(.invitados-tabs,.programa-tabs) .programa-tab-btn:hover,
:where(.invitados-tabs,.programa-tabs) .programa-tab-btn:focus-visible{
  background:#F1FBFE !important;
  color:#0b4a5a !important;
}
:where(.invitados-tabs,.programa-tabs) .invitados-tab-btn.active,
:where(.invitados-tabs,.programa-tabs) .programa-tab-btn.active{
  background:linear-gradient(135deg,var(--accent),#ffb676) !important;
  color:#fff !important;
  border-color:transparent !important;
}
/* Acentos */
:where(.invitados-tabs,.programa-tabs) .tab-accent--sah{box-shadow:inset 4px 0 0 0 var(--accent);}
:where(.invitados-tabs,.programa-tabs) .tab-accent--eha{box-shadow:inset 4px 0 0 0 #4ABDD6;}
:where(.invitados-tabs,.programa-tabs) .tab-accent--grcf{box-shadow:inset 4px 0 0 0 #097da4;}
:where(.invitados-tabs,.programa-tabs) .tab-accent--enf{box-shadow:inset 4px 0 0 0 #ffb676;}
/* Tipos invitados */
.invitado-nombre{font-weight:800 !important;}
.invitado-pais{font-style:italic !important; color:rgba(11,74,90,.85);}
/* === Fin paleta FINAL === */


/* === Programa altura/espaciado y botones (2025-09-25) === */
section
.programa-tabs-container { margin-top: 16px; }
.programa-tab-content { padding: 12px 0 6px; min-height: 32vh; } /* más alto visual */
.programa-tab-content 
.programa-tab-content .btn-programa {
  display: inline-block;
  width: min(520px, 50%); /* 50% en desktop con tope 520px */
  min-width: 260px;
  text-align: center;
  margin: 14px auto 10px;
}
@media (max-width: 768px){
  .programa-tab-content .btn-programa { width: 92%; min-width: 0; }
}
/* === Fin programa altura/espaciado === */


/* === Header fijo en desktop (2025-09-25) === */
@media (min-width: 992px){
  header{ position: sticky; top: 0; z-index: 1000; }
  body{ scroll-padding-top: 100px; }
}
/* === Fin header fijo desktop === */

/* === Botón PDF (programa) estilo suave === */
a.btn-programa, .btn-programa {
  background:#EAF7FB;
  border:1px solid #4ABDD6;
  color:#0b4a5a;
  border-radius:12px;
  padding:.85rem 1.25rem;
  font-weight:700;
  text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
  display:inline-block;
}
a.btn-programa:hover, .btn-programa:hover { background:#F1FBFE; transform:translateY(-1px); box-shadow:0 8px 18px rgba(74,189,214,.18); }
a.btn-programa:active, .btn-programa:active { transform:translateY(0); box-shadow:none; }

/* ============================================
   CORRECCIONES CSS - Header Fixed y Back-to-Top
   Agregar al FINAL de styles.css
   ============================================ */

/* === HEADER FIXED EN DESKTOP (CORREGIDO) === */
@media (min-width: 992px) {
    .header {
        position: sticky !important;
        top: 0 !important;
        z-index: 1000 !important;
    }
    
    /* Asegurar scroll-padding para anclas */
    html {
        scroll-padding-top: 120px !important;
    }
    
    body {
        scroll-padding-top: 120px !important;
    }
}

/* === BACK-TO-TOP BUTTON (CORREGIDO) === */
.btn-backtop {
    position: fixed !important;
    right: 24px !important;
    bottom: 24px !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 50% !important;
    border: 2px solid #4ABDD6 !important;
    background: rgba(234, 247, 251, 0.95) !important;
    color: #0b4a5a !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 8px 22px rgba(74, 189, 214, 0.25) !important;
    cursor: pointer !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(20px) scale(0.8) !important;
    pointer-events: none !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 9999 !important;
    backdrop-filter: blur(10px) !important;
    text-decoration: none !important;
}

.btn-backtop svg {
    width: 24px !important;
    height: 24px !important;
    stroke-width: 2.5 !important;
}

.btn-backtop:hover {
    background: rgba(241, 251, 254, 0.98) !important;
    border-color: #097da4 !important;
    color: #097da4 !important;
    box-shadow: 0 12px 28px rgba(74, 189, 214, 0.35) !important;
    transform: translateY(0) scale(1.05) !important;
}

.btn-backtop.show {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
    pointer-events: auto !important;
}

/* Responsive para móviles */
@media (max-width: 768px) {
    .btn-backtop {
        right: 20px !important;
        bottom: 20px !important;
        width: 46px !important;
        height: 46px !important;
    }
    
    .btn-backtop svg {
        width: 20px !important;
        height: 20px !important;
    }
}

/* === MEJORAS ADICIONALES PARA SCROLL SUAVE === */
html {
    scroll-behavior: smooth !important;
}

/* Asegurar que las secciones tengan ID para el scroll */
section[id] {
    scroll-margin-top: 140px;
}

/* En móviles, menor offset porque el header no es sticky */
@media (max-width: 991px) {
    section[id] {
        scroll-margin-top: 100px;
    }
}

/* === OVERRIDE PARA ASEGURAR QUE EL BOTÓN APAREZCA === */
/* Si el botón sigue sin aparecer, usar este CSS más específico */
button.btn-backtop[aria-label="Volver arriba"] {
    display: flex !important;
    position: fixed !important;
    z-index: 10000 !important;
}

/* === FIX PARA EL SCRIPT DEL BACK-TO-TOP === */
/* El JavaScript ya está en tu script.js, pero si no funciona, 
   asegúrate de que este código esté presente: */
   
/* ============================================
   CORRECCIONES FINALES - Agregar al FINAL de styles.css
   ============================================ */

/* === 1. HEADER FIXED PARA DESKTOP/TABLET (CORREGIDO) === */
@media (min-width: 769px) {
    .header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 1000 !important;
        box-shadow: 0 2px 20px rgba(0,0,0,0.15) !important;
    }
    
    /* Compensar la altura del header fijo */
    body {
        padding-top: 90px !important;
    }
    
    /* Scroll padding para anclas */
    html {
        scroll-padding-top: 110px !important;
    }
    
    section[id] {
        scroll-margin-top: 110px !important;
    }
}

/* === 2. TÍTULO "PROGRAMAS CIENTÍFICOS" === */


/* Responsive para el título */
@media (max-width: 768px) {
    
}

@media (max-width: 480px) {
    
}   

/* === Integrantes: lista con viñetas, renglón normal === */
#m-integrantes {
  list-style: disc !important;
  padding-left: 1.25rem !important;
  margin: 0 !important;
}
#m-integrantes li {
  border: 0 !important;
  padding: 0 !important;
  line-height: 1.4 !important;
  margin-top: 0 !important;
}

/* === SCROLL HORIZONTAL MEJORADO === */
.scroll-hint-wrapper {
  position: relative;
}

.scroll-hint {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 60px;
  background: rgba(52, 152, 219, 0.9);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  cursor: pointer;
  z-index: 10;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  transition: all 0.3s ease;
  user-select: none;
}

.scroll-hint:hover {
  background: rgba(41, 128, 185, 1);
  transform: translateY(-50%) scale(1.1);
}

.scroll-hint-left {
  left: 10px;
}

.scroll-hint-right {
  right: 10px;
}

/* Ocultar flechas en móviles */
@media (max-width: 768px) {
  .scroll-hint {
    display: none;
  }
}

/* Cursor mejorado para tabla scrolleable */




@media (max-width: 1200px) {
    .hero-content { gap: 2rem; padding: 0 1.5rem; }
    .hero-right { padding-right: 1.5rem; }
    .hero-right-card { max-width: 520px; padding: 1.8rem; }
    .hero-icons-image1 { max-height: 480px; }
}

@media (max-width: 992px) {
    .hero-content { padding: 0 1.25rem; }
    .hero-right { padding-right: 0; }
    .hero-icons-image1 { height: auto; max-height: 420px; }
    .hero-right-card { padding: 1.6rem; }
}

@media (max-width: 480px) {
    .hero-content { padding: 0 1rem; }
    .hero-icons-image1 { max-height: 320px; border-radius: 12px; }
    .hero-right-card { border-radius: 16px; padding: 1.25rem; }
    .hero-right-card p { text-align: left; } /* en pantallas muy chicas, mejor legibilidad */
}


:root{
  --accent: #DE5905;
  --accent-2: #F26A0A;
  --accent-3: #C84B00;
}

/* Governance / Authorities */
.gov-section{
  padding: 4.2rem 0;
  background: #fff;
}

.gov-container{
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(1.2rem, 2vw, 2rem);
}

.gov-header{
  margin-bottom: 2.2rem;
  text-align: left;
}

.gov-title{
  font-size: 2.2rem;
  font-weight: 800;
  color: #1f2937;
  letter-spacing: 0.2px;
  display: inline-block;
  padding-bottom: 0.6rem;
  border-bottom: 4px solid var(--accent);
}

.gov-subtitle{
  margin-top: 0.8rem;
  color: #4b5563;
  font-weight: 500;
}

.gov-block{
  margin-top: 2.3rem;
  padding-top: 2.3rem;
  border-top: 1px dashed rgba(31,41,55,0.25);
}

.gov-block-title{
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--accent-3);
  letter-spacing: 0.4px;
  margin-bottom: 1.2rem;
}

/* Grid de personas */
.gov-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.2rem;
}

.gov-member{
  background: rgba(255,255,255,0.85);
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 18px;
  padding: 1rem 1rem;
  display: flex;
  gap: 1rem;
  align-items: center;
  box-shadow: 0 10px 24px rgba(0,0,0,0.08);
}

.gov-avatar{
  width: 72px;
  height: 72px;
  border-radius: 999px;
  border: 4px solid #fff; /* borde blanco pedido */
  overflow: hidden;
  flex: 0 0 72px;
  background: linear-gradient(135deg, rgba(222,89,5,0.25), rgba(222,89,5,0.05));
  box-shadow: 0 10px 18px rgba(0,0,0,0.12);
}

.gov-avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Si no hay src, no rompe visualmente */
.gov-avatar img:not([src]),
.gov-avatar img[src=""]{
  display: none;
}

.gov-info{
  min-width: 0;
}

.gov-name{
  font-size: 1.15rem;
  font-weight: 600;
  color: #111827;
  line-height: 1.2;
}

.gov-role{
  margin-top: 0.25rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: #4b5563;
}

/* Bloques por país */
.gov-country{
  margin-top: 1.6rem;
}

.gov-country-title{
  font-size: 1.05rem;
  font-weight: 800;
  color: #111827;
  margin: 0 0 0.9rem 0;
  display: inline-block;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(222,89,5,0.10);
  border: 1px solid rgba(222,89,5,0.25);
}

/* Responsive */
@media (max-width: 1024px){
  .gov-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px){
  .gov-container{ padding: 0 1rem; }
  .gov-grid{ grid-template-columns: 1fr; }
  .gov-member{ padding: 0.9rem; }
}


/* ===================== NEW SECTIONS BASE ===================== */
.wrap{max-width:1200px;margin:0 auto;padding:4rem 2rem}
h2{color:#111827;margin-bottom:1.5rem}
.meta{color:var(--accent);font-weight:600}
.bio{color:#374151}

/* Buttons */
.btn-primary{
  display:inline-block;
  background:var(--accent);
  color:#fff;
  padding:.8rem 1.5rem;
  border-radius:30px;
  text-decoration:none;
  font-weight:600;
}
.btn-secondary{
  background:#fff;
  border:2px solid var(--accent);
  color:#111827;
  padding:.7rem 1.4rem;
  border-radius:30px;
  font-weight:600;
}

/* Speakers (layout tipo grilla 4xN + separadores + ribbon 45°) */

.speakers-section{
  /* Fondo beige lateral como referencia */
  background: #f4e6d6;
  padding: 0;
}

.speakers-wrap{
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

/* Panel central blanco (evita que las cards “salgan” a los laterales) */
.speakers-panel{
  max-width: 1200px;
  margin: 0 auto;
  background: #ffffff;
  padding: 0 2.4rem 3.2rem;
}

/* Ribbon naranja con cierre a 45° (por CSS, NO flecha) */
.speakers-ribbon{
  --spk-ribbon-bg: #d95f00;
  --spk-ribbon-cut: 44px;   /* “grosor visual” del corte */
  position: relative;
  display: inline-flex;
  align-items: center;
  background: var(--spk-ribbon-bg);
  color: #fff;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
  padding: 1.15rem calc(1.6rem + var(--spk-ribbon-cut)) 1.05rem 1.6rem;
  margin: 0;                /* pegado al panel */
  overflow: visible;
}

.speakers-ribbon::after{
  content: "";
  position: absolute;
  top: 0;
  right: calc(-1 * var(--spk-ribbon-cut));
  width: var(--spk-ribbon-cut);
  height: 100%;
  background: var(--spk-ribbon-bg);
  transform: skewX(-45deg);
  transform-origin: left top;
}

.speakers-ribbon-text{
  font-size: 3.1rem; /* similar al mock */
  line-height: 1;
}

/* Espaciado entre ribbon y grid */
.speakers-panel .speakers-grid{padding-top: 3.0rem;}

/* 4 por línea en desktop */
.speakers-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0; /* los separadores los hacemos con borders */
}

.speaker-card{
  text-align: center;
  padding: 2.3rem 1.5rem 2.5rem;
  background: transparent;
  position: relative;
}


.speaker-card h4{
  margin: 0.25rem 0 0.4rem;
  font-size: 1.15rem;
  font-weight: 600;
  color: #111827;
  line-height: 1.2;
}

/* separadores verticales */
.speaker-card:not(:nth-child(4n+1)){
  border-left: 1px solid rgba(17,24,39,0.22);
}

/* separadores horizontales (a partir de la segunda fila) */
.speaker-card:nth-child(n+5){
  border-top: 1px solid rgba(17,24,39,0.22);
}

.speaker-photo{
  width: 120px;
  height: 120px;
  margin: 0 auto 1.15rem;
  border-radius: 999px;
  overflow: hidden;
  background: #e5e7eb;
}

.speaker-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.speaker-name{
  font-weight: 900;
  font-size: 1.05rem;
  color: #111827;
  margin: 0.25rem 0 0.25rem;
}

.speaker-country{
  font-weight: 700;
  color: #7a3bb8;
  margin: 0 0 0.45rem;
}

.speaker-affiliation{
  color: #111827;
  font-size: 0.98rem;
  line-height: 1.25;
}

.speaker-affiliation em{
  font-style: italic;
}

/* Responsive */
@media (max-width: 1100px){
  .speakers-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .speaker-card:not(:nth-child(4n+1)){ border-left: 0; } /* reseteo regla 4-cols */
  .speaker-card{ border-left: 0; border-top: 0; }
  .speaker-card:not(:nth-child(3n+1)){ border-left: 1px solid rgba(17,24,39,0.22); }
  .speaker-card:nth-child(n+4){ border-top: 1px solid rgba(17,24,39,0.22); }
}

@media (max-width: 820px){
  .speakers-wrap{ padding: 0 1.1rem 2.5rem; }
  .speakers-ribbon-text{ font-size: 1.8rem; }
  .speakers-ribbon{
    clip-path: polygon(0 0, calc(100% - 44px) 0, 100% 50%, calc(100% - 44px) 100%, 0 100%);
    padding: 0.85rem 1.8rem;
  }
  .speakers-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .speaker-card{ border-left: 0; border-top: 0; }
  .speaker-card:not(:nth-child(2n+1)){ border-left: 1px solid rgba(17,24,39,0.22); }
  .speaker-card:nth-child(n+3){ border-top: 1px solid rgba(17,24,39,0.22); }
}

@media (max-width: 520px){
  .speakers-grid{ grid-template-columns: 1fr; }
  .speaker-card{ border-left: 0 !important; }
  .speaker-card:nth-child(n+2){ border-top: 1px solid rgba(17,24,39,0.22); }
  .speaker-photo{ width: 110px; height: 110px; }
}

/* Program */
.program-section{background:var(--accent-grad)}
.program-table{width:100%;border-collapse:collapse;background:#fff}
.program-table th{background:var(--accent);color:#fff;padding:.8rem}
.program-table td{padding:.8rem;border:1px solid #e5e7eb;color:#1f2937}
.program-table .day{background:var(--accent-soft);font-weight:700}

/* Registration */
.registration-section{background:var(--accent-soft-2)}
.fees-table{width:100%;max-width:600px;border-collapse:collapse;background:#fff}
.fees-table th{background:#F3B58F;color:#111827}
.fees-table th,.fees-table td{border:1px solid #e5e7eb;padding:.7rem;text-align:center}

/* Abstract / FAQ / Grant */
.abstract-section{background:#FDEFE6}
.faq-section{background:#FFEDE0}
.grant-section{background:#F9E3D2}
.downloads{list-style:none;padding:0}
.downloads li{margin:.4rem 0}
.downloads a{color:var(--accent);font-weight:600;text-decoration:none}

/* Top banner above navigation */
.top-banner {
    width: 100%;
    background: #5b1b8a; /* color de respaldo */
    line-height: 0;
}

.top-banner img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 90px;
    object-fit: cover;
}


/* Utility */
.is-hidden{display:none !important;}

button, input, textarea, select{font-family:inherit;}

/* ===================== DRAFT HERO ===================== */
.hero.hero-draft{
  position: relative;
  padding-top: 88px !important;
  background: url("https://www.lag-cll.org/images/background/fondo01_tramagris.png") center/cover no-repeat;
}
.hero.hero-draft::before,
.hero.hero-draft::after{ content:none !important; }

.hero-banner{ 
  width:100%; 
  line-height: 0;
}
.hero-banner img{ 
  width:100%; 
  height:auto; 
  display:block; 
  vertical-align: top;
}

.hero-card-wrap{
  max-width: 1400px;
  margin: 0 auto;
  padding: 2rem 1.5rem 3rem;
  display:flex;
  justify-content:center;
}

.hero-main-card{
  width: min(80%, 1100px);
  margin-top: 1.2rem;
  background: rgba(255,255,255,0.94);
}

/* Draft: center the hero title */
.hero.hero-draft .hero-right-card h2{ text-align:center; }

 /* =========================
   HERO SIGNATURES – FINAL
   ========================= */

/* Contenedor general */
.hero-signatures {
  display: flex;
  gap: 2rem;
  margin-top: 2rem;
  flex-wrap: wrap;
}

/* Cada firma */
.hero-signature {
  display: flex;
  align-items: center;
  gap: 1.1rem;
}

/* Avatar desktop */
.hero-signature-avatar {
  width: 100px;
  height: 100px;
  flex-shrink: 0;
}

.hero-signature-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

/* Texto */
.hero-signature-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #2c3e50;
  line-height: 1.25;
}

.hero-signature-role {
  font-size: 0.9rem;
  font-weight: 500;
  color: #666;
  margin-top: 0.15rem;
}

/* =========================
   TABLET
   ========================= */
@media (max-width: 1024px) {
  .hero-signature-avatar {
    width: 100px;
    height: 100px;
  }

  .hero-signature-name {
    font-size: 1rem;
  }

  .hero-signature-role {
    font-size: 0.85rem;
  }
}

/* =========================
   MOBILE
   ========================= */
@media (max-width: 768px) {
  .hero-signatures {
    justify-content: center;
    gap: 1.8rem;
  }

  .hero-signature {
    flex-direction: column;
    text-align: center;
    gap: 0.6rem;
  }

  .hero-signature-avatar {
    width: 105px;
    height: 105px;
  }

  .hero-signature-name {
    font-size: 1rem;
  }

  .hero-signature-role {
    font-size: 0.85rem;
  }
}

/* =========================
   MOBILE CHICO
   ========================= */
@media (max-width: 480px) {
  .hero-signature-avatar {
    width: 95px;
    height: 95px;
  }

  .hero-signature-name {
    font-size: 0.95rem;
  }

  .hero-signature-role {
    font-size: 0.8rem;
  }
}


.gov-member.compact{
  display:inline-flex;
  align-items:center;
  gap: 0.65rem;
  padding: 0.55rem 0.75rem;
  background: rgba(255,255,255,0.75);
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.08);
}

.gov-member.compact .gov-avatar{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  overflow:hidden;
  flex: 0 0 42px;
}

.gov-member.compact .gov-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.gov-member.compact .gov-name{
  font-weight:700;
  font-size:0.92rem;
  line-height:1.1;
}

.gov-member.compact .gov-role{
  font-weight:600;
  font-size:0.8rem;
  opacity:0.85;
  line-height:1.1;
}

@media (max-width: 768px){
  .hero-main-card{ width: 100%; }
}



/* ---- Hero draft overrides: force one column + full-bleed banner + signatures visible ---- */
.hero.hero-draft{
  display:block;
}

.hero.hero-draft .hero-banner{
  width:100%;
  max-width:none;
}

/* Full-bleed banner even if any parent constrains width */
.hero.hero-draft .hero-banner img{
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.hero.hero-draft .hero-right-card{
  display:block !important; /* avoid any legacy grid/flex */
}

.hero.hero-draft .hero-signatures{
  display:flex !important;
}


/* ===== HERO DRAFT: requested sizing ===== */
.hero.hero-draft{
  background: url("https://www.lag-cll.org/images/background/fondo01_tramagris.png") center/cover no-repeat;
}

.hero.hero-draft .hero-card-wrap{
  width: 80%;
  margin: 0 auto;
  padding: 0;
  display: flex;
  justify-content: center;
}

@media (max-width: 900px){
  .hero.hero-draft .hero-card-wrap{ width: 92%; }
}

.hero.hero-draft .hero-main-card{
  width: 100%;
  max-width: none; /* card takes full width of the wrap */
}

 

/* ===== Hero fine-tuning ===== */

/* 1) Banner001 flush to menu (no top padding/margin) */
.hero.hero-draft{
  padding-top: 0 !important;
}
.hero.hero-draft .hero-banner{
  margin-top: 0 !important;
}
.hero.hero-draft .hero-banner img{
  margin-top: 0 !important;
  display: block;
}

/* 2) WELCOME: violet from top bar + left aligned */
.hero.hero-draft .hero-right-card h2{
  text-align: left !important;
  color: #5b1b8a;
  margin-bottom: 0.5rem;
}

/* 3) Hero text: slightly smaller + tighter leading */
.hero.hero-draft .hero-right-card p{
  font-size: 0.98rem;       /* ~1–2 points smaller */
  line-height: 1.35;        /* less separation between lines */
  margin-top: 0.25rem;
}


/* ===== Header logos: same visual height ===== */
.sah-logo{
  height: 56px;
  width: auto;
  max-width: none;
  object-fit: contain;
  display: block;
}

/* Ajustar el logo SAH para que se vea del mismo tamaño que los otros */
.logo-container img:first-child {
  height: 58px;
}



/* ===== Banner001 flush to main menu ===== */
header, .site-header, .main-nav{
  margin-bottom: 0 !important;
}

.hero.hero-draft{
  margin-top: 0 !important;
}

.hero.hero-draft .hero-banner{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* tiny nudge to avoid 1px seam caused by subpixel rendering */
.hero.hero-draft .hero-banner img{
  margin-top: 0 !important;
}


/* ===== Fix: banner001 flush to header ===== */
.header{ padding-bottom:0 !important; }
.header-content{ margin-bottom:0 !important; }
.main-nav{ margin-bottom:0 !important; }

.hero.hero-draft{
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}

.hero.hero-draft::before,
.hero.hero-draft::after{
  content: none !important;
  display: none !important;
}

.hero.hero-draft .hero-banner{
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0;
}

.hero.hero-draft .hero-banner img{
  display:block;
  width:100%;
  height:auto;
  margin: 0 !important;
}


/* ===== Hero card: straight edges + signatures without "pill cards" ===== */
.hero.hero-draft .hero-right-card{
  border-radius: 0 !important;
}

.hero.hero-draft .hero-main-card{
  border-radius: 0 !important;
}

.hero.hero-draft .hero-signatures{
  justify-content: space-between;
}

.hero.hero-draft .hero-signature{
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  justify-content: flex-start;
}

@media (max-width: 600px){
  .hero.hero-draft .hero-signature{
    justify-content: center;
  }
}


/* ===== Footer logos: side by side (60/40) ===== */
.footer-logos-grid{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 1rem;
  width:100%;
  max-width: 1200px;
  margin: 0 auto 1rem;
  padding: 0 1.5rem;
}

.footer-logos-left{ flex: 0 0 60%; display:flex; justify-content:flex-start; align-items:center; }
.footer-logos-right{ flex: 0 0 40%; display:flex; justify-content:flex-end; align-items:center; }

.footer-logos-left img,
.footer-logos-right img{
  height: 46px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  display:block;
}

@media (max-width: 700px){
  .footer-logos-grid{
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
  }
  .footer-logos-left,
  .footer-logos-right{
    flex: 0 0 auto;
    width: 100%;
    justify-content: center;
  }
}


/* ===== V6 APPLY: remove unintended gaps above banner ===== */
html, body{
  margin: 0 !important;
  padding: 0 !important;
}

.header, .header-content, .main-nav{
  margin: 0 !important;
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
}

/* Remove default hero top stripe in this site */
.hero::before{
  content: none !important;
  display: none !important;
}

.hero.hero-draft{
  margin: 0 !important;
  padding: 0 !important;
}

.hero.hero-draft .hero-banner{
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

.hero.hero-draft .hero-banner img{
  display:block;
  width:100%;
  height:auto;
  margin: 0 !important;
}

/* Hero card: straight edges */
.hero.hero-draft .hero-right-card,
.hero.hero-draft .hero-main-card{
  border-radius: 0 !important;
}


/* ===== V6 APPLY: Footer logos side-by-side (60/40) ===== */
.footer-logos-grid{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 1rem;
  width:100%;
  max-width: 1200px;
  margin: 0 auto 1rem;
  padding: 0 1.5rem;
}

.footer-logos-left{ flex: 0 0 60%; display:flex; justify-content:flex-start; align-items:center; }
.footer-logos-right{ flex: 0 0 40%; display:flex; justify-content:flex-end; align-items:center; }

.footer-logos-left img,
.footer-logos-right img{
  height: 46px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  display:block;
}

@media (max-width: 700px){
  .footer-logos-grid{
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
  }
  .footer-logos-left,
  .footer-logos-right{
    flex: 0 0 auto;
    width: 100%;
    justify-content: center;
  }
}



/* ===== V8 AUTHORITIES TUNING ===== */
/* Ribbon not full width + angled cut (45deg). Fallback if clip-path unsupported */
.gov-ribbon{
  display: inline-block;
  margin: 0.75rem 0 1rem;
  border-radius: 0;
  overflow: hidden;
  background: rgba(255,255,255,0.18);
  padding-right: 1.25rem;
  clip-path: polygon(0 0, 92% 0, 100% 50%, 92% 100%, 0 100%);
  margin-bottom: .6rem !important;
}

@supports not (clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%)){
  .gov-ribbon{
    clip-path: none;
    position: relative;
  }
  .gov-ribbon::after{
    content:"";
    position:absolute;
    top:0;
    right:-24px;
    width:48px;
    height:100%;
    background: rgba(255,255,255,0.18);
    transform: skewX(-45deg);
  }
}

.gov-ribbon-inner{
  padding: 0.7rem 1.1rem !important;
}

/* Compact vertical rhythm */
.gov-section{
  padding: 0 0 2.2rem !important;
}

.gov-block{
  margin-top: 0.9rem !important;
}

.gov-block-title{
   margin-top: .35rem !important; 
}

.gov-grid{
  gap: 0.9rem !important;
}

/* Cards with straight edges */
.gov-member{
  border-radius: 0 !important;
}

/* Divider between blocks (if any) slimmer */
.gov-section hr,
.gov-section .gov-sep{
  margin: 0.85rem 0 !important;
}

/* Title separator styling */
.gov-block-title-sep{
  opacity: 0.75;
  font-weight: 600;
  margin: 0 0.25rem;
}

/* Tag del cargo (CHAIR / VICE-CHAIR) */
.gov-block.chairs-block .gov-tag{
  display: inline-flex !important;
  align-items: center !important;
  gap: .6rem !important;
  color: #fff !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .9px !important;
  font-size: 1.05rem !important;
  margin: 0 0 .55rem 0 !important; /* menos aire con la card */
}

/* Barra naranja fuerte a la izquierda */
.gov-block.chairs-block .gov-tag-bar{
  width: 4px !important;
  height: 20px !important;
  background: #ef781a !important;   /* naranja fuerte */
  border-radius: 2px !important;
}





/* Payment Fee / Registration table polish */
.fees-table{
  width: 100%;
  max-width: 620px;
  margin: 0.75rem auto 1rem;
  border-collapse: collapse;
  background: #fff;
}

.fees-table th,
.fees-table td{
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(0,0,0,0.12);
  text-align: left;
  font-size: 0.95rem;
}

.fees-table th{
  background: rgba(91,27,138,0.08);
  font-weight: 800;
}

.fees-table tr:nth-child(even) td{
  background: rgba(0,0,0,0.02);
}

/* ===================== REGISTRATION (updated) ===================== */
.registration-section, section#registration{
  background: url("https://www.lag-cll.org/images/background/fondo01_tramagris.png") center/cover no-repeat;
  position: relative;
}

.registration-section::before, section#registration::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.55);
  pointer-events: none;
}

.registration-wrap{
  position: relative;
  z-index: 1;
}

.registration-card{
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(0,0,0,0.08);
  box-shadow: 0 18px 55px rgba(0,0,0,0.12);
  border-radius: 14px;
  padding: 1.6rem 1.6rem 1.2rem;
  max-width: 980px;
  margin: 0 auto;
}

.registration-subtitle{
  font-weight: 700;
  margin: 0 0 1rem;
  color: #2c3e50;
}

.fees-table-wrap{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 12px;
}

.fees-table{
  width: 100%;
  border-collapse: collapse;
  min-width: 620px;
  background: white;
}

.fees-table th,
.fees-table td{
  padding: 0.9rem 0.9rem;
  border-bottom: 1px solid rgba(0,0,0,0.07);
  text-align: left;
  vertical-align: top;
}

.fees-table thead th{
  background: rgba(91, 27, 138, 0.08);
  color: #3b1b56;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.fees-table tbody tr:nth-child(even){
  background: rgba(0,0,0,0.015);
}

.payment-note{
  margin-top: 1rem;
  color: #1f2937;
}

.payment-note p{
  margin: 0.25rem 0;
  line-height: 1.35;
  font-size: 0.98rem;
}

.registration-actions{
  margin-top: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 3rem;
}

.preregistration-title {
  margin-top: 2rem;
  margin-bottom: 1rem;
  text-align: center;
}

.preregistration-title h3 {
  color: #5b1b8a;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.4;
  max-width: 800px;
  margin: 0 auto;
}

.registration-actions--new {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: center;
  justify-content: center;
  margin-bottom: 4rem;
}

.btn-prereg {
  flex: 0 0 auto;
}

.payment-buttons--inline {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}

.payment-buttons{
  display: flex;
  gap: 0.65rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.pay-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.5rem;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  border: 2px solid;
  background: white;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}

.pay-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}

.pay-btn.paypal{
  border-color: #003087;
  color: #003087;
}

.pay-btn.paypal:hover{
  background: #003087;
  border-color: #003087;
  color: white;
}

.pay-btn.mp{
  border-color: #009EE3;
  color: #009EE3;
}

.pay-btn.mp:hover{
  background: #009EE3;
  border-color: #009EE3;
  color: white;
}

/* ===================== MODAL (Pre-Registration) ===================== */
.modal{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.modal.is-open{
  display: flex !important;
  align-items: center;
  overflow-y: auto;
  padding: 20px 0;
}

.modal-overlay{
  position: absolute;
  inset: 0;
  background: rgba(17,24,39,0.55);
  backdrop-filter: blur(4px);
}

.modal-dialog{
  position: relative;
  width: min(860px, calc(100% - 2rem));
  margin: 0 auto;
  background: rgba(255,255,255,0.98);
  border-radius: 14px;
  box-shadow: 0 30px 90px rgba(0,0,0,0.35);
  padding: 1.4rem 1.4rem 1.2rem;
}

.modal-open{
  overflow: hidden;
}

.modal-close{
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.12);
  background: white;
  cursor: pointer;
  font-size: 1.3rem;
  line-height: 1;
}

.modal-title{
  margin: 0.2rem 0 0.25rem;
  font-weight: 800;
  color: #2c3e50;
}

.modal-subtitle{
  margin: 0 0 1rem;
  color: #374151;
}

.form-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem 1rem;
}

.form-field label{
  display: block;
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 0.35rem;
  color: #111827;
}

.form-field input,
.form-field textarea{
  width: 100%;
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,0.14);
  background: white;
  font-family: inherit;
  font-size: 0.98rem;
  outline: none;
}

.form-field input:focus,
.form-field textarea:focus{
  border-color: rgba(91,27,138,0.55);
  box-shadow: 0 0 0 4px rgba(91,27,138,0.12);
}

.form-field--full{
  grid-column: 1 / -1;
}

.modal-actions{
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: flex-end;
}

@media (max-width: 820px){
  .registration-actions{ justify-content: center; }
  .payment-buttons{ justify-content: center; }
  .form-grid{ grid-template-columns: 1fr; }
  
  .preregistration-title h3 {
    font-size: 1.25rem;
    padding: 0 1rem;
  }
  
  .registration-actions--new {
    flex-direction: column;
    gap: 1rem;
  }
  
  .payment-buttons--inline {
    flex-direction: column;
    width: 100%;
  }
  
  .pay-btn {
    width: 100%;
  }
}


/* ===================== Registration: title ribbon + transparent card ===================== */
section#registration .section-title{
  display: inline-block;
  padding: 0.65rem 1.2rem;
  background: rgba(239, 120, 26, 0.16);
  color: #ef781a;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  clip-path: none;
  border: 1px solid rgba(239,120,26,0.28);
  margin: 0 0 1.25rem 0;
}

/* Registration ribbon image */
.registration-ribbon-img-wrap{
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin: 0 0 1.4rem 0;
}

.registration-ribbon-img{
  height: 54px;
  width: auto;
  display: block;
}

section#registration .registration-card{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

section#registration .fees-table thead th{
  background: rgba(239, 120, 26, 0.12) !important;
  color: #7a3d00 !important;
}

section#registration .fees-table-wrap{
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(0,0,0,0.08);
}

section#registration .payment-note{
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 12px;
  padding: 0.9rem 1rem;
}



/* ===================== Footer logos: left aligned side-by-side ===================== */
.footer-logos-grid{
  justify-content: flex-start !important;
}
.footer-logos-right{
  justify-content: flex-start !important;
  flex: 0 0 auto !important;
}
.footer-logos-left{
  flex: 0 0 auto !important;
}


footer .footer-logos{
  display:flex;
  gap: 1rem;
  justify-content:flex-start;
  align-items:center;
}

/* ===== FIX: GOV RIBBON badge (ends after text) + 45° cut ===== */

/* el fondo violeta es de la sección, NO del ribbon */
.gov-section{ background:#824db1 !important; } /* ya lo tenés, lo dejo por claridad */

/* el ribbon claro debe medir el ancho del texto */
.gov-ribbon{
  display: inline-block !important;
  width: fit-content;
  max-width: 100%;
  background: rgba(255,255,255,0.18);
  margin: 0.75rem 0 1rem;
  padding-right: 1.2rem; /* espacio antes del corte */
  overflow: visible;
  /* corte 45° al final (badge) */
  clip-path: polygon(0 0, calc(100% - 42px) 0, 100% 50%, calc(100% - 42px) 100%, 0 100%);
}

/* IMPORTANTE: pisar reglas viejas del inner que lo estiran a max-width */
.gov-ribbon-inner{
  max-width: none !important;
  margin: 0 !important;
  padding: 0.7rem 1.1rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  white-space: nowrap;
}

/* fallback si clip-path no está disponible */
@supports not (clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%)){
  .gov-ribbon{
    clip-path: none;
    position: relative;
    padding-right: 2.2rem; /* deja lugar al “corte” fake */
  }
  .gov-ribbon::after{
    content:"";
    position:absolute;
    top:0;
    right:-21px;
    width:42px;
    height:100%;
    background: rgba(255,255,255,0.18);
    transform: skewX(-45deg);
  }
}

/* Responsive */
@media (max-width: 768px){
  .gov-ribbon{
    clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 50%, calc(100% - 34px) 100%, 0 100%);
  }
  .gov-ribbon-inner{
    padding: 0.6rem 0.9rem !important;
  }
}
/* ===== GOV RIBBON: shrink-to-text + 45° cut (FINAL OVERRIDE) ===== */

.gov-ribbon{
  display: flex !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 0 1rem 0 !important;
  background: transparent !important;
  padding: 0 !important;
  overflow: visible !important;
  clip-path: none !important;
}

/* CLAVE: el inner NO debe tener max-width ni margin auto, y debe ser inline */
.gov-ribbon-inner{
  display: inline-flex !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: baseline !important;
  gap: 0.55rem !important;
}

.gov-ribbon-img{
  display: block !important;
  width: 482px !important;
  height: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
}

@supports not (clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%)){
  .gov-ribbon{
    clip-path: none !important;
    position: relative !important;
    padding-right: 0 !important;
    overflow: visible !important;
  }
  .gov-ribbon::after{
    display: none !important;
  }
}

/* Responsive */
@media (max-width: 768px){
  .gov-ribbon{
    clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 50%, calc(100% - 34px) 100%, 0 100%) !important;
  }
  .gov-ribbon-inner{
    padding: 0.7rem 0.9rem !important;
  }
}

/* =====================================================================
   FIX FORCE: Chairs / Vice-Chair mock (place LAST to override old rules)
   ===================================================================== */
.gov-block.chairs-block .chairs-grid{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(240px, 1fr)) !important;
  gap: 0.9rem !important;
  align-items: start !important;
}

.gov-block.chairs-block .gov-card{
  display: flex !important;
  flex-direction: column !important;
}

/* Tag arriba: | CHAIR */
.gov-block.chairs-block .gov-tag{
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  font-size: 1.05rem !important;
  margin: 0 0 0.9rem 0 !important;
}

.gov-block.chairs-block .gov-tag-bar{
  width: 3px !important;
  height: 18px !important;
  background: var(--accent) !important;
  border-radius: 2px !important;
}

/* Tarjeta blanca */
.gov-block.chairs-block .gov-member{
  background: #ffffff !important;
  border-radius: 2px !important;
  padding: 1.35rem 1.4rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 1.25rem !important;
  box-shadow: 0 10px 25px rgba(0,0,0,0.10) !important;
  border: 0 !important;              /* por si algún bloque viejo mete borde */
}

/* Foto circular (evita oval) */
.gov-block.chairs-block .govradius: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 1.15rem 1.25rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 1.25rem !important;
}

/* 100px circular avatar */
.gov-block.chairs-block .gov-avatar{
  width: 100px !important;
  height: 100px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  flex: 0 0 100px !important;
  background: #eee !important;
  border: 0 !important;
  box-shadow: none !important;
}

.gov-block.chairs-block .gov-avatar img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* name in two lines, larger */
.gov-block.chairs-block .gov-name{
  font-size: 1.55rem !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  color: #111827 !important;
}

/* hide role inside card (role already displayed above) */
.gov-block.chairs-block .gov-role{
  display: none !important;
}


/* Hero signatures: force 100px and perfect circle */
.hero-signature-avatar{
  width: 100px !important;
  height: 100px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  flex: 0 0 100px !important;
}
.hero-signature-avatar img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
  display: block !important;
}


/* ==========================================================
   AUTHORITIES RIBBON (PNG) — single source of truth (CLEAN)
   ========================================================== */
.gov-ribbon{
  background: transparent !important;
  height: auto !important;
  margin: 0 0 1.1rem 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  overflow: visible !important;
}
.gov-ribbon::before,
.gov-ribbon::after{
  content: none !important;
  display: none !important;
}
.gov-ribbon-img{
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
}

/* ===============================
   HONORARY CHAIR
   =============================== */

.gov-block.honorary-chair .gov-grid{
  display: grid !important;
  grid-template-columns: minmax(260px, 360px) !important;
  justify-content: flex-start !important;
}

/* Reutiliza el mismo tag visual */
.gov-block.honorary-chair .gov-tag{
  display: inline-flex !important;
  align-items: center !important;
  gap: .6rem !important;
  color: #ffffff !important;
  font-weight: 900 !important;
  letter-spacing: .9px !important;
  text-transform: uppercase !important;
  font-size: 1.05rem !important;
  margin: 0 0 .55rem 0 !important;
}

.gov-block.honorary-chair .gov-tag-bar{
  width: 4px !important;
  height: 20px !important;
  background: #ef781a !important;
  border-radius: 2px !important;
}

/* =========================================================
   AUTHORITIES – Block titles + Committees (CLEAN)
   ========================================================= */

/* Title style like tags: white bold + orange vertical bar */
.gov-block-title{
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  margin: 2.1rem 0 1.2rem 0;
  color: #ffffff;
  font-weight: 900;
  letter-spacing: .9px;
  text-transform: uppercase;
  font-size: 1.05rem;
}
.gov-block-title::before{
  content: "";
  width: 4px;
  height: 20px;
  background: #ef781a;
  border-radius: 2px;
  display: inline-block;
}

/* Committees: keep same visual language as Chairs cards */
.gov-block.committee-block .gov-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(240px, 1fr));
  gap: 0.9rem;
  align-items: start;
}
@media (max-width: 980px){
  .gov-block.committee-block .gov-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px){
  .gov-block.committee-block .gov-grid{ grid-template-columns: 1fr; }
}

.gov-block.committee-block .gov-member{
  background: #ffffff;
  border-radius: 0;
  box-shadow: none;
  border: 0;
  padding: 1.15rem 1.25rem;
  gap: 1.25rem;
  min-height: 110px;
}

.gov-block.committee-block .gov-avatar{
  width: 100px;
  height: 100px;
  flex: 0 0 100px;
  border-radius: 50%;
}

/* Unificar tipografías de nombres con Chairs */
.gov-block.committee-block .gov-name{
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1.05;
  color: #111827;
}

/* En committees, ocultar rol repetido dentro de la card */
.gov-block.committee-block .gov-role{
  display: none;
}

/* Scientific Committee: países tal cual, solo prolijo/legible */
.gov-country{
  margin-top: 1.4rem;
}
.gov-country-title{
  margin: 1.3rem 0 .8rem 0;
  color: rgba(255,255,255,0.92);
  font-weight: 900;
  letter-spacing: .4px;
  text-transform: none; /* preserve country names */
  font-size: 1.05rem;
}

/* SPEAKERS ribbon – ajustar altura para que NO quede excedente abajo */
.speakers-ribbon{
  padding: 14px 64px 14px 28px !important; /* menos alto */
  line-height: 1 !important;
}

.speakers-ribbon h2,
.speakers-ribbon .speakers-title{
  margin: 0 !important;           /* clave: elimina margen del título */
  line-height: 1 !important;
  font-size: 48px !important;     /* un poco más chico (ajustá 48–54 si querés) */
  letter-spacing: 1px !important;
}

/* Asegura que el corte diagonal calce EXACTO con la altura del ribbon */
.speakers-ribbon::after{
  height: 100% !important;
}

/* ==================================================
   SPEAKERS – FINAL (6 per row desktop) – ISOLATED
   This block is intentionally scoped to .speakers-section
   so it overrides any earlier duplicates safely.
   ================================================== */

.speakers-section{
  background: #F6E3D6;
  padding: 1.2rem 0 4.2rem; /* no top padding: ribbon can “stick” to previous section */
}

.speakers-shell{
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* Ribbon image must sit OUTSIDE the white panel */
.speakers-ribbon-img-wrap{
  margin: 0;
  padding: 0;
  transform: none; /* no overlap with previous section */ /* visually attached to the previous violet band */
}

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

/* White panel */
.speakers-panel{
  background: url("images/background/fondo01_tramagris.png") center/cover no-repeat;
  border-radius: 0;
  box-shadow: none;
  padding: 2.2rem 2.2rem 2.6rem;
}

/* Grid: 6 per row on wide screens */
.speakers-section .speakers-grid{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1.6rem 1.8rem;
  align-items: start;
}

/* Card + separators (subtle) */
.speakers-section .speaker-card{
  text-align: center;
  padding: 0.6rem 0.25rem 0.4rem;
  position: relative;
}

.speakers-section .speaker-card::after{
  content:"";
  position:absolute;
  top: 0.9rem;
  right: -0.9rem;
  width: 1px;
  height: calc(100% - 1.8rem);
  background: rgba(0,0,0,0.18);
}

/* last column: no vertical separator */
.speakers-section .speaker-card:nth-child(6n)::after{
  display:none;
}

/* Avatar (reserve space even if photo fails) */
.speakers-section .speaker-avatar{
  width: 110px;
  height: 110px;
  margin: 0 auto 0.75rem;
  border-radius: 999px;
  overflow: hidden;
  background: #d9dde3;
  display:flex;
  align-items:center;
  justify-content:center;
}

.speakers-section .speaker-avatar img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.speakers-section .speaker-avatar.no-photo{
  background: #d9dde3;
}

/* Text */
.speakers-section .speaker-name{
  font-weight: 900;
  font-size: 0.98rem;
  color: #111827;
  margin: 0.1rem 0 0.12rem;
  line-height: 1.1;
}
.speakers-section .speaker-country{
  font-weight: 800;
  color: #6B2BBF; /* violet */
  margin: 0 0 0.18rem;
  font-size: 0.9rem;
}
.speakers-section .speaker-affil{
  color:#111827;
  font-size: 0.88rem;
  line-height: 1.25;
}
.speakers-section .speaker-affil em{
  font-style: italic;
}

/* Responsive */
@media (max-width: 1400px){
  .speakers-section .speakers-grid{ grid-template-columns: repeat(4, minmax(0,1fr)); }
  .speakers-section .speaker-card::after{ right: -1.2rem; }
  .speakers-section .speaker-card:nth-child(6n)::after{ display:block; }
  .speakers-section .speaker-card:nth-child(4n)::after{ display:none; }
}

@media (max-width: 1100px){
  .speakers-section .speakers-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.8rem 1.6rem; }
  .speakers-section .speaker-card:nth-child(4n)::after{ display:block; }
  .speakers-section .speaker-card:nth-child(3n)::after{ display:none; }
}

@media (max-width: 820px){
  .speakers-ribbon-img-wrap{ transform: translateY(-10px); }
  .speakers-panel{ padding: 1.8rem 1.2rem 2.2rem; }
  .speakers-section .speakers-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); gap: 2.0rem 1.4rem; }
  .speakers-section .speaker-card::after{ display:none; } /* cleaner on small screens */
  .speakers-section .speaker-avatar{ width: 120px; height: 120px; }
}

@media (max-width: 520px){
  .speakers-section .speakers-grid{ grid-template-columns: 1fr; }
  .speakers-section .speaker-avatar{ width: 120px; height: 120px; }
}


/* ==================================================
   SPEAKERS – OVERRIDES (ensure no overlap + 6 per row)
   ================================================== */
.speakers-section{
  padding-top: 1.2rem !important; /* keep ribbon inside section */
}
.speakers-section .speakers-ribbon-img-wrap{
  transform: none !important;
  margin: 0 0 1.8rem 0 !important;
}
.speakers-section .speakers-grid{
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}
@media (max-width: 1400px){
  .speakers-section .speakers-grid{ grid-template-columns: repeat(4, minmax(0,1fr)) !important; }
}
@media (max-width: 1100px){
  .speakers-section .speakers-grid{ grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
}
@media (max-width: 820px){
  .speakers-section .speakers-grid{ grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 520px){
  .speakers-section .speakers-grid{ grid-template-columns: 1fr !important; }
}


/* =====================
   Unified trama background + overlay (Program / Registration / Abstract)
   Image path: /images/background/fondo01_tramagris.png
   ===================== */
.program-section,
.registration-section,
.abstract-section{
  background-image: url("images/background/fondo01_tramagris.png");
  background-repeat: repeat;
  background-position: top left;
  background-size: auto;
}

/* Pegar todos los títulos/ribbons al top de sus secciones */
.program-ribbon-img-wrap,
.gov-ribbon,
.sponsors-ribbon,
section .wrap > *:first-child {
  margin-top: 0 !important;
}

.program-section .wrap,
.registration-section .wrap,
.abstract-section .wrap{
  background: rgba(255,255,255,0.92);
  border-radius: 16px;
  padding: clamp(1.2rem, 2vw, 2rem);
  box-shadow: 0 10px 28px rgba(0,0,0,0.12);
}

/* =====================
   Program (Excel) layout
   ===================== */
.program-wrap .section-title{
  margin-bottom: .35rem;
}

.program-note{
  margin: 0 0 1.2rem 0;
  color: #374151;
  font-size: 0.98rem;
}

.program-days{
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

.program-day-title{
  margin: 0 0 .35rem 0;
  font-size: 1.4rem;
  font-weight: 700;
  color: #1f2937;
}

.program-room{
  margin: 0 0 .8rem 0;
  display: inline-block;
  font-size: .9rem;
  font-weight: 700;
  color: var(--accent);
  background: rgba(222, 89, 5, 0.10);
  padding: .35rem .65rem;
  border-radius: 999px;
}

.program-table-wrap{
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.65);
}

.program-table{
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  background: transparent;
}

.program-table th,
.program-table td{
  padding: .7rem .75rem;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  vertical-align: top;
  font-size: .92rem;
  color: #111827;
}

.program-table thead th{
  position: sticky;
  top: 0;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(8px);
  font-weight: 800;
  text-transform: none;
}

.program-table .col-time{ width: 120px; white-space: nowrap; font-weight: 700; color: #111827; }
.program-table .col-duration{ width: 110px; white-space: nowrap; text-align: right; font-weight: 700; }
.program-table .col-speaker{ width: 200px; font-weight: 600; }
.program-table .col-activity{ width: 260px; }
.program-table .col-title{ width: auto; }

.program-row.section-row td{
  background: rgba(222, 89, 5, 0.08);
  font-weight: 800;
}

@media (max-width: 600px){
  .program-section .wrap,
  .registration-section .wrap,
  .abstract-section .wrap{
    border-radius: 12px;
    padding: 1rem;
  }
  .program-table{ min-width: 860px; }
}

/* ===================== PROGRAM SECTION ===================== */

.program-section {
    background: #834cb0;
    padding: 4rem 0 5rem;
    position: relative;
}

/* Ribbon wrapper */
.program-ribbon-img-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 2.5rem;
    position: relative;
    z-index: 2;
}

/* Ribbon image */
.program-ribbon-img {
    max-width: 420px;
    width: 100%;
    height: auto;
    display: block;
}

/* Responsive ajustes */
@media (max-width: 768px) {
    .program-ribbon-img {
        max-width: 300px;
    }

    .program-section {
        padding: 3rem 0 4rem;
    }
}

/* =========================
   OVERRIDE FINAL (PEGAR AL FINAL)
   ========================= */

/* 4 columnas en desktop para governance */
.gov-grid{
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* igualar nombre/apellido de governance al de speakers */
.speaker-card h4,
.gov-name{
  font-family: 'Inter', sans-serif !important;
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  color: #111827 !important;
  line-height: 1.2 !important;
  margin: 0.25rem 0 0.4rem !important;
}

/* responsive */
@media (max-width: 1024px){
  .gov-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 640px){
  .gov-grid{ grid-template-columns: 1fr !important; }
}
/* =========================================
   FIX DEFINITIVO CHAIRS + HONORARY COMMITTEE
   ========================================= */

/* Nombre y apellido – igual que Speakers */
.gov-name,
.gov-member h4,
.gov-member .gov-info > div:first-child {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.15rem !important;
    font-weight: 600 !important;
    color: #111827 !important;
    line-height: 1.2 !important;
}

/* Evitar que algún rol herede tamaño mayor */
.gov-role {
    font-size: 0.85rem !important;
    font-weight: 500 !important;
}

/* Meta info governance (como speakers) */
.gov-meta {
    font-size: 0.85rem;
    color: #6b7280;
    line-height: 1.3;
}

/* CV link */
.gov-cv {
    display: inline-block;
    margin-top: 0.25rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--accent);
    text-decoration: none;
}

.gov-cv:hover {
    text-decoration: underline;
}
/* =====================
   ABSTRACT – 3 columns + title image + buttons
   ===================== */
.abstract-wrap{ padding-top: 1.2rem; }

.abstract-ribbon-img-wrap{
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin: 0 0 1.4rem 0;
}

.abstract-ribbon-img{
  height: 54px;
  width: auto;
  display: block;
}

.abstract-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2rem;
  align-items: stretch;
}

.abstract-card{
  background: rgba(255,255,255,0.92);
  border-radius: 18px;
  padding: 1.25rem 1.2rem;
  box-shadow: 0 10px 24px rgba(0,0,0,0.10);
  border: 1px solid rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: center;
}

.abstract-col-title{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #111827;
}

.abstract-pill-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.95rem 1.2rem;
  border-radius: 999px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  border: 2px solid rgba(222, 89, 5, 0.9);
  background: transparent;
  color: #111827;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.abstract-pill-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.10);
  background: rgba(222, 89, 5, 0.06);
}

.abstract-pill-btn:focus-visible{
  outline: none;
  box-shadow: 0 0 0 4px rgba(91,27,138,0.12), 0 10px 20px rgba(0,0,0,0.10);
}

.abstract-pill-btn--primary{
  border-color: rgba(91, 27, 138, 0.85);
}

.abstract-pill-btn--primary:hover{
  background: rgba(91, 27, 138, 0.08);
}

.abstract-pill-btn--grant{
  border-color: rgba(74, 189, 214, 0.9);
}

.abstract-pill-btn--grant:hover{
  background: rgba(74, 189, 214, 0.10);
}

.abstract-desc{
  margin: 0;
  font-style: italic;
  color: #6b7280;
  line-height: 1.35;
  text-align: center;
}

@media (max-width: 900px){
  .abstract-grid{ grid-template-columns: 1fr; }
  .abstract-ribbon-img{ height: 48px; }
  .registration-ribbon-img{ height: 48px; }
  .gov-ribbon-img{ width: 100% !important; max-width: 482px !important; }
}

/* Full width abstract grid */
.abstract-section .abstract-wrap {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.abstract-grid--two-cols {
  display: grid;
  grid-template-columns: 50% 50%;
  border-top: 1px solid rgba(255,255,255,0.15);
  gap: 0;
}

/* Aire interno de cada columna */
.abstract-card-group,
.abstract-card--grant {
  padding: 0 48px;
}

/* Mobile */
@media (max-width: 768px) {
  .abstract-grid--two-cols {
    grid-template-columns: 1fr;
  }

  .abstract-card-group,
  .abstract-card--grant {
    padding: 0 20px;
  }
}
 
/* ===================== SPONSORS ===================== */
.sponsors-section{
  background:#f7e7dc; /* beige similar al mock */
  padding: 34px 0 44px;
}

.sponsors-wrap{
  max-width: 1180px;
  padding: clamp(1.2rem, 2vw, 2rem);
}

.sponsors-ribbon{
  position: relative;
  display: inline-block;
  margin: 0 0 22px 0;
}

.sponsors-ribbon-inner{
  background:#f27a00;
  color:#fff;
  font-weight: 800;
  letter-spacing: .5px;
  text-transform: uppercase;
  font-size: clamp(22px, 2.6vw, 38px);
  line-height: 1;
  padding: 14px 34px 14px 34px;
  border-radius: 0;
  position: relative;
}

/* “corte” diagonal a la derecha */
.sponsors-ribbon-inner::after{
  content:"";
  position:absolute;
  top:0;
  right:-34px;
  width:0;
  height:0;
  border-top: 100px solid #f27a00;
  border-left: 34px solid transparent;
}

/* espaciado entre bloques */
.sponsors-tier{
  margin: 18px 0 22px;
}

.sponsors-tier-title{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 22px;
  color:#111;
  margin: 0 0 10px 0;
}

/* Título de categoría dentro de la franja blanca */
.sponsors-tier-title-inline{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 22px;
  color:#111;
  margin: 0 0 20px 0;
}

.sponsors-tier-bar{
  width: 3px;
  height: 20px;
  background:#f27a00;
  display:inline-block;
  border-radius: 2px;
}

.sponsors-card{
  background:#fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 0;
  padding: 28px 24px 24px 24px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.sponsors-logos{
  display:grid;
  align-items:center;
  gap: 22px 26px;
}

.sponsors-logos--3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
.sponsors-logos--2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.sponsors-logos--1{ grid-template-columns: 1fr; }

.sponsor-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height: 92px;
}

.sponsor-logo img{
  max-width: 100%;
  height: auto;
  max-height: 78px; /* para que queden prolijos */
  object-fit: contain;
}

/* BRONZE alineado a la izquierda como en el mock */
.sponsor-logo--left{
  justify-content:flex-start;
}

/* Responsive */
@media (max-width: 900px){
  .sponsors-logos--3{ grid-template-columns: 1fr; }
  .sponsors-logos--2{ grid-template-columns: 1fr; }
  .sponsors-card{ padding: 18px 16px; }
  .sponsors-ribbon-inner::after{ border-top: 76px solid #f27a00; }
  .sponsor-logo{ min-height: 84px; }
  .sponsor-logo img{ max-height: 70px; }
}
/* ===================== /SPONSORS ===================== */
.sponsors-ribbon{
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin: 0 0 1.4rem 0;
}

.sponsors-ribbon-img{
  height: 54px;
  width: auto;
  display: block;
}
.sponsor-logo img{
  max-width: 50%;
  height: auto;
  max-height: 40px; /* antes 78px */
  object-fit: contain;
}
@media (max-width: 768px){
  .sponsor-logo img{
    max-width: 65%;
    max-height: 46px;
  }
}



/* ==========================================================
   SECTION TITLES (RIBBONS) — unify like ABSTRACT SUBMITTION
   - Same top spacing
   - Flush left to viewport (full-bleed)
   - Prevent AUTHORITIES ribbon image deformation
   ========================================================== */

:root{
  --ribbon-height: 54px;
}

/* Same top spacing inside each section container (match .abstract-wrap) */
.registration-wrap,
.program-section .wrap,
.program-preview-wrapper,
.gov-container,
.speakers-section .wrap,
.sponsors-section .wrap,
.contact-section .wrap,
.moreinfo-section .wrap{
  padding-top: 1.2rem !important;
}

/* Full-bleed + left aligned ribbon wrappers */
.abstract-ribbon-img-wrap,
.registration-ribbon-img-wrap,
.program-ribbon-img-wrap,
.speakers-ribbon-img-wrap,
.gov-ribbon{
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;  /* break out of centered containers */
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;

  display: flex !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;

  margin-top: 0 !important;
}

/* Keep a consistent gap after the ribbon */
.abstract-ribbon-img-wrap{ margin-bottom: 1.4rem !important; }
.registration-ribbon-img-wrap{ margin-bottom: 1.4rem !important; }
.program-ribbon-img-wrap{ margin-bottom: 1.4rem !important; }
.speakers-ribbon-img-wrap{ margin-bottom: 1.8rem !important; }
.gov-ribbon{ margin-bottom: 1.4rem !important; }

/* Ribbon images: do NOT stretch, keep intrinsic ratio */
.abstract-ribbon-img,
.registration-ribbon-img,
.program-ribbon-img,
.speakers-ribbon-img,
.gov-ribbon-img{
  height: var(--ribbon-height) !important;
  width: auto !important;
  max-width: 100% !important;
  display: block !important;
}

/* Mobile: slightly smaller ribbons */
@media (max-width: 768px){
  :root{ --ribbon-height: 48px; }
}


/* ==========================================================
   AUTHORITIES (GOVERNANCE) — compact desktop / normal mobile
   Keeps photo + name sizes intact; reduces vertical whitespace.
   ========================================================== */

@media (min-width: 769px){
  /* Reduce section outer padding */
  .gov-section{ padding: 2.8rem 0 !important; }

  /* Tighten header spacing */
  .gov-header{ margin-bottom: 1.4rem !important; }

  /* Tighten blocks separation */
  .gov-block{
    margin-top: 1.6rem !important;
    padding-top: 1.6rem !important;
  }

  /* Slightly tighter grid spacing */
  .gov-grid{ gap: 0.9rem !important; }

  /* Compact card padding/gap (avatar size unchanged) */
  .gov-member{
    padding: 0.75rem 0.9rem !important;
    gap: 0.85rem !important;
  }

  /* Reduce tiny vertical margins only */
  .gov-role{ margin-top: 0.15rem !important; }
}

/* Mobile stays as designed (normal spacing) */


/* ==========================================================
   MOREINFO — title like other sections + custom background
   Cards with icon + title below
   ========================================================== */

.moreinfo-section{
  background: #d4b5e8; /* violeta suave - más claro que el título */
  padding: 0 0 3.2rem;
}

.moreinfo-ribbon-img-wrap{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: 0;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin-bottom: 1.6rem;
}

.moreinfo-ribbon-img{
  height: 54px;
  width: auto;
  max-width: 100%;
  display: block;
}

.moreinfo-section .wrap{
  padding-top: 0.6rem;
}

.moreinfo-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.info-card{
  appearance: none;
  border: 0;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 18px;
  padding: 1.2rem 1rem;
  cursor: pointer;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;

  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}

.info-card:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.28);
}

.info-icon{
  width: 84px;
  height: auto;
  display: block;
}

.info-text{
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #fff;
  text-transform: uppercase;
  font-size: 0.95rem;
  text-align: center;
}

@media (max-width: 768px){
  .moreinfo-ribbon-img{ height: 48px; }
  .moreinfo-grid{ grid-template-columns: 1fr; }
  .info-icon{ width: 78px; }
}

/* Allow our generic modal opener to work with existing modal styles */
.modal[aria-hidden="true"]{ display: none; }
.modal.is-open{ display: block; }

body.modal-open{ overflow: hidden; }


/* ==========================================================
   PATCH v3 — MoreInfo cards orange + 6 per row + modal images fit
              + PROGRAM/SPONSORS top spacing aligned to others
   ========================================================== */

/* ---------- MOREINFO cards: orange official + 6 per line (desktop) ---------- */
.moreinfo-grid{
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
}


/* Ensure cards always fill their grid cell (prevents uneven widths) */
.moreinfo-grid > .info-card{
  width: 100% !important;
}
.info-card{
  background: #DE5905 !important; /* naranja oficial */
  border: 0 !important;
  border-radius: 16px !important;
  padding: 16px 12px !important;
  cursor: pointer !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 140px !important;
  text-align: center !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.18) !important;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease !important;
}

.info-card:hover{
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,0.22) !important;
  filter: brightness(1.02) !important;
}

.info-icon{
  width: auto !important;
  height: 56px !important;
  max-width: 100% !important;
  object-fit: contain !important;
  display: block !important;
}

.info-text{
  color: #fff !important;
  font-weight: 800 !important;
  letter-spacing: .6px !important;
  text-transform: uppercase !important;
}

/* Responsivo: 3 por fila tablet, 2 por fila mobile */
@media (max-width: 1100px){
  .moreinfo-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 768px){
  .moreinfo-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .info-card{ min-height: 128px !important; }
  .info-icon{ height: 52px !important; }
}

/* ---------- Modal content: no horizontal scroll, images fit modal width ---------- */
.modal-dialog,
.modal-body{
  overflow-x: hidden !important;
}

.modal-body img{
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
}

/* Si alguna imagen viene con width fijo, esto evita desborde */
.modal-body *{
  max-width: 100% !important;
}

/* ---------- PROGRAM: match top spacing like other sections ---------- */
.program-section{
  padding-top: 0 !important;
}

.program-section .wrap{
  padding-top: 1.2rem !important;
}

.program-ribbon-img-wrap{
  margin-top: 0 !important;
}


/* PROGRAM (preview wrapper): match top spacing like other sections */
.program-section--preview{
  padding-top: 0 !important;
}
.program-section--preview .program-preview-wrapper{
  padding-top: 1.2rem !important;
}
.program-section--preview .program-ribbon-img-wrap{
  margin-top: 0 !important;
}

/* ---------- SPONSORS: match top spacing + left like others ---------- */
.sponsors-section{
  padding-top: 0 !important;
}

.sponsors-wrap{
  padding-top: 1.2rem !important;
}

.sponsors-ribbon{
  margin-top: 0 !important;
}



/* ===================== SPONSORS (PLATE) – MATCH REGISTRATION LAYOUT ===================== */
/* Keep ribbon as a block and center it like other section ribbons */
 


.sponsors-ribbon-img-wrap{
  display: flex;
  justify-content: flex-start;
  margin-bottom: 14px;
}

.section-title-img{
  max-height: 70px;
  width: auto;
  height: auto;
  display: block;
}



/* Plate: centered, preserves designed proportion, responsive down */
.sponsors-plate{
  margin-top: 18px;
}

.sponsors-plate img{
  display: block;
  width: 100%;
  height: auto;
  max-width: 1000px;   /* ⬅️ ANCHO MÁXIMO PEDIDO */
  margin: 0 auto;      /* centrada */
}




/* On very large screens keep it from feeling too wide */
@media (min-width: 1400px){
  .sponsors-plate img{ max-width: 1320px; }
}


/* =========================
   FOOTER – GRUPO UNO LOGO
   Tamaño real + texto a la derecha
   ========================= */

/* Solo la sección donde está Grupo Uno */
.footer-section {
  display: flex;
  align-items: center;
  gap: 12px;  /* Reducido de 16px a 12px para más espacio al texto */
}

/* Contenedor del logo Grupo Uno */
.footer-section .footer-logo {
  flex: 0 0 auto;            /* no se estira */
  max-width: 100px;          /* Limitar ancho del contenedor */
}

/* Logo Grupo Uno: tamaño reducido */
.footer-section .footer-logo img {
  width: auto;               /* Ancho automático */
  height: 30px;              /* Altura reducida (antes 59px) */
  max-width: 100px;          /* Máximo 100px de ancho */
  object-fit: contain;
  display: block;
}

/* Texto a la derecha */
.footer-section .footer-text-content {
  flex: 1;
}

/* Mobile: apilar sin romper */
@media (max-width: 768px) {
  .footer-section {
    flex-direction: column;
    align-items: flex-start;
  }

  .footer-section .footer-logo img {
    width: auto;             /* Ancho automático en mobile también */
    height: 25px;            /* Un poco más pequeño en mobile */
    max-width: 80px;
  }
}

/* Registration fee image at 80% */
img[src="images/img_registrationFEE.png"]{
  width: 80%;
  height: auto;
}

/* =========================
   ABSTRACT – GRANT BUTTONS
   ========================= */

/* 1) Botón LINK (Download PDF) → NARANJA */
a.abstract-pill-btn--grant{
  background-color: #DE5905;   /* naranja */
  color: #fff;
  border: none;
}

a.abstract-pill-btn--grant:hover{
  background-color: #c94f04;
}

/* 2) Botón MODAL (Open Apply Form) → VIOLETA */
button#openGrantModal{
  background-color: #824db1;   /* violeta */
  color: #fff;
  border: none;
}

button#openGrantModal:hover{
  background-color: #6f4199;
}

/* =================================================
   ABSTRACT – GRANT BUTTONS (MATCH LEFT BUTTONS)
   ================================================= */

/* BASE (ya existe, se reutiliza) */
.abstract-pill-btn{
  transition: background-color 0.2s ease,
              transform 0.15s ease,
              box-shadow 0.15s ease;
}

/* ---------- ORANGE (Download PDF) ---------- */
a.abstract-pill-btn--grant{
  background-color: #DE5905; /* mismo naranja */
  color: #fff;
}

a.abstract-pill-btn--grant:hover{
  background-color: #c94f04;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.18);
}

a.abstract-pill-btn--grant:active{
  transform: translateY(0);
  box-shadow: 0 3px 8px rgba(0,0,0,0.22);
}

/* ---------- VIOLET (Open Apply Form) ---------- */
button#openGrantModal{
  background-color: #824db1; /* mismo violeta */
  color: #fff;
}

button#openGrantModal:hover{
  background-color: #6f4199;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.18);
}

button#openGrantModal:active{
  transform: translateY(0);
  box-shadow: 0 3px 8px rgba(0,0,0,0.22);
}
/* ===== Grant modal – clean, tall, buttons always visible ===== */
.modal-dialog--grant{ max-width: 720px; }
.modal-content--grant{ max-height: 90vh; display:flex; flex-direction:column; overflow:hidden; }
.modal-header--grant{ position:relative; text-align:center; padding:18px 24px 12px; border-bottom:1px solid rgba(255,255,255,0.15); }
.modal-header--grant .modal-title{ margin:0; font-size:1.35rem; font-weight:700; color:#fff; }
.modal-close{ position:absolute; right:14px; top:10px; background:none; border:none; color:#fff; font-size:30px; cursor:pointer; line-height:1; opacity:0.9; }
.modal-close:hover{ opacity:1; }

.modal-body--grant{ padding:18px 24px 22px; overflow-y:auto; }
.grant-lead{ color:#fff; opacity:0.95; margin:0 0 14px; line-height:1.45; }

.grant-form{ display:block; }
.grant-field{ display:flex; flex-direction:column; gap:6px; color:#fff; font-size:0.95rem; }
.grant-field input{ padding:10px 12px; border-radius:10px; border:1px solid rgba(255,255,255,0.25); background:rgba(255,255,255,0.08); color:#fff; }

.grant-upload-group{ display:grid; grid-template-columns:1fr; gap:14px; margin-top:16px; }
.grant-upload{ display:flex; flex-direction:column; gap:6px; color:#fff; font-size:0.95rem; }
.grant-upload input[type="file"]{ padding:10px 12px; border-radius:10px; border:1px dashed rgba(255,255,255,0.35); background:rgba(255,255,255,0.06); color:#fff; }
.req{ color:#ff4d4d; font-weight:700; margin-left:4px; }
.opt{ opacity:0.85; margin-left:6px; font-size:0.9em; }

.grant-actions{ margin-top:18px; display:flex; justify-content:flex-end; }
.grant-message{ margin-top:12px; color:#fff; font-size:0.95rem; opacity:0.95; }
.grant-message.is-error{ color:#ffd1d1; }
.grant-message.is-ok{ color:#d7ffd7; }

@media (max-width: 520px){
  .modal-body--grant{ padding:16px 16px 18px; }
}

/* ============================================= */
/* ESTILOS ADICIONALES PARA MODAL FELLOWSHIP */
/* Agregar al final del archivo styles.css */
/* ============================================= */

/* Modal Title con fondo naranja */
.modal-title--orange {
  background: var(--accent); /* #DE5905 */
  color: white !important;
  padding: 1.2rem 3rem 1.2rem 1.5rem;
  margin: -1px -1px 0 -1px;
  border-radius: 8px 8px 0 0;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: left;
}

/* Ajustar el botón de cerrar cuando hay header naranja */
#grantModal .modal-close {
  color: white;
  opacity: 0.9;
  z-index: 10;
  background: transparent;
  font-size: 28px;
  font-weight: 300;
  line-height: 1;
  padding: 0.5rem;
  transition: opacity 0.2s;
}

#grantModal .modal-close:hover {
  opacity: 1;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 4px;
}

/* Ajustar el subtitle para que tenga mejor espaciado */
#grantModal .modal-subtitle {
  margin-top: 1.2rem;
}

/* Responsive: ajustar padding en móvil */
@media (max-width: 640px) {
  .modal-title--orange {
    padding: 1rem 2.5rem 1rem 1rem;
    font-size: 1.2rem;
  }
}
/* ============================================= */
/* SCROLL PARA MODAL FELLOWSHIP */
/* Agregar al final del archivo styles.css */
/* ============================================= */

/* Limitar altura del modal y agregar scroll */
#grantModal .modal-dialog {
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  margin: 2vh auto;
}

/* Hacer que el formulario tenga scroll interno */
#grantModal .grant-form {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  max-height: calc(90vh - 120px); /* Resta espacio del header y padding */
}

/* El contenedor del formulario con scroll */
#grantModal .form-grid {
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 8px; /* Espacio para el scrollbar */
  flex: 1;
  /* Estilos del scrollbar personalizado */
  scrollbar-width: thin;
  scrollbar-color: rgba(222, 89, 5, 0.5) rgba(0, 0, 0, 0.05);
}

/* Scrollbar webkit (Chrome, Safari, Edge) */
#grantModal .form-grid::-webkit-scrollbar {
  width: 8px;
}

#grantModal .form-grid::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.05);
  border-radius: 10px;
}

#grantModal .form-grid::-webkit-scrollbar-thumb {
  background: rgba(222, 89, 5, 0.4);
  border-radius: 10px;
}

#grantModal .form-grid::-webkit-scrollbar-thumb:hover {
  background: rgba(222, 89, 5, 0.6);
}

/* Mantener los botones de acción fijos al final */
#grantModal .grant-actions {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  flex-shrink: 0; /* No permitir que se comprima */
}

/* Ajuste responsive para móviles */
@media (max-width: 768px) {
  #grantModal .modal-dialog {
    max-height: 95vh;
    margin: 1vh auto;
  }
  
  #grantModal .grant-form {
    max-height: calc(95vh - 100px);
  }
}

@media (max-width: 480px) {
  #grantModal .modal-dialog {
    max-height: 98vh;
    margin: 1vh 0.5rem;
    width: calc(100% - 1rem);
  }
  
  #grantModal .grant-form {
    max-height: calc(98vh - 90px);
  }
  
  #grantModal .form-grid {
    padding-right: 4px;
  }
}

/* ============================================= */
/* SCROLL PARA MODAL FELLOWSHIP */
/* Estilos para hacer scroll interno en el modal */
/* ============================================= */

/* Limitar altura del modal y agregar scroll */
#grantModal .modal-dialog {
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  margin: 2vh auto;
}

/* Hacer que el formulario tenga scroll interno */
#grantModal .grant-form {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  max-height: calc(90vh - 120px);
}

/* El contenedor del formulario con scroll */
#grantModal .form-grid {
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 8px;
  flex: 1;
  scrollbar-width: thin;
  scrollbar-color: rgba(222, 89, 5, 0.5) rgba(0, 0, 0, 0.05);
}

/* Scrollbar webkit (Chrome, Safari, Edge) */
#grantModal .form-grid::-webkit-scrollbar {
  width: 8px;
}

#grantModal .form-grid::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.05);
  border-radius: 10px;
}

#grantModal .form-grid::-webkit-scrollbar-thumb {
  background: rgba(222, 89, 5, 0.4);
  border-radius: 10px;
}

#grantModal .form-grid::-webkit-scrollbar-thumb:hover {
  background: rgba(222, 89, 5, 0.6);
}

/* Mantener los botones de acción fijos al final */
#grantModal .grant-actions {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  flex-shrink: 0;
}

/* Ajuste responsive para móviles */
@media (max-width: 768px) {
  #grantModal .modal-dialog {
    max-height: 95vh;
    margin: 1vh auto;
  }
  
  #grantModal .grant-form {
    max-height: calc(95vh - 100px);
  }
}

@media (max-width: 480px) {
  #grantModal .modal-dialog {
    max-height: 98vh;
    margin: 1vh 0.5rem;
    width: calc(100% - 1rem);
  }
  
  #grantModal .grant-form {
    max-height: calc(98vh - 90px);
  }
  
  #grantModal .form-grid {
    padding-right: 4px;
  }
}

/* ============================================= */
/* ESTILOS PARA NOMBRES DE ARCHIVO */
/* ============================================= */

.file-name {
  display: none;
  margin-top: 4px;
  font-size: 0.85rem;
  color: #059669;
  font-weight: 500;
}

.file-name:not(:empty) {
  display: block;
}

#grantModal input[type="file"] {
  padding: 8px 12px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: white;
  cursor: pointer;
  font-size: 0.9rem;
  transition: all 0.2s;
}

#grantModal input[type="file"]:hover:not(:disabled) {
  border-color: var(--accent);
  background: #fef3e9;
}

#grantModal input[type="file"]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: #f3f4f6;
}

#grantModal input[type="file"]:focus {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.grant-upload {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.grant-upload label {
  font-weight: 600;
  font-size: 0.9rem;
  color: #374151;
}

.grant-upload label .required {
  color: #dc2626;
  margin-left: 2px;
}

.grant-upload label small {
  font-weight: 400;
  color: #6b7280;
  font-size: 0.85rem;
}

/* ============================================
   PRE-REGISTRATION MODAL STYLES
   ============================================ */

/* Modal dialog wider for pre-registration */
.modal-dialog--wide {
  max-width: 900px;
  width: 95%;
  max-height: calc(100vh - 40px);
}

/* Scrollbar personalizado para Webkit (Chrome, Safari, Edge) */
.modal-dialog--wide::-webkit-scrollbar {
  width: 8px;
}

.modal-dialog--wide::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 10px;
}

.modal-dialog--wide::-webkit-scrollbar-thumb {
  background: #5b1b8a;
  border-radius: 10px;
}

.modal-dialog--wide::-webkit-scrollbar-thumb:hover {
  background: #7a2bb5;
}

/* Required fields notice */
.modal-required-notice {
  margin: 10px 0 15px 0;
  padding: 10px 15px;
  background: #f0f0f0;
  border-left: 3px solid #dc2626;
  font-size: 14px;
  color: #374151;
  border-radius: 4px;
}

.modal-required-notice .required {
  color: #dc2626;
  font-weight: bold;
  font-size: 16px;
}

/* Important notice box */
.modal-important-notice {
  background: #fff3cd;
  border: 2px solid #ffc107;
  border-radius: 8px;
  padding: 20px;
  margin: 20px 0;
}

.modal-important-notice p {
  margin: 0;
  color: #856404;
  font-size: 15px;
  line-height: 1.6;
  text-align: center;
}

.modal-important-notice strong {
  color: #664d03;
}

/* Modern form grid */
.form-grid--modern {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin: 30px 0;
}

.form-grid--modern .form-field {
  display: flex;
  flex-direction: column;
}

.form-grid--modern .form-field--full {
  grid-column: 1 / -1;
}

.form-grid--modern label {
  font-weight: 600;
  font-size: 14px;
  color: #374151;
  margin-bottom: 8px;
  display: block;
}

.form-grid--modern .required {
  color: #dc2626;
  margin-left: 2px;
  font-weight: bold;
}

.form-grid--modern input,
.form-grid--modern textarea {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid #d1d5db;
  border-radius: 6px;
  font-size: 15px;
  font-family: 'Inter', sans-serif;
  transition: all 0.2s ease;
  background: white;
}

.form-grid--modern input:focus,
.form-grid--modern textarea:focus {
  outline: none;
  border-color: #5b1b8a;
  box-shadow: 0 0 0 3px rgba(91, 27, 138, 0.1);
}

.form-grid--modern input::placeholder,
.form-grid--modern textarea::placeholder {
  color: #9ca3af;
}

.form-grid--modern textarea {
  resize: vertical;
  min-height: 100px;
  font-family: 'Inter', sans-serif;
}

/* Responsive for mobile */
@media (max-width: 768px) {
  .modal-dialog--wide {
    max-width: 95%;
    max-height: calc(100vh - 20px);
  }
  
  .form-grid--modern {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  
  .modal-important-notice {
    padding: 15px;
  }
  
  .modal-important-notice p {
    font-size: 14px;
  }
}

/* Status messages styling */
#prereg-status {
  font-size: 15px;
  font-weight: 500;
  text-align: center;
}

 
.program-day-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.program-day-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.15) !important;
}

@media (max-width: 768px) {
  .program-content {
    padding: 10px !important;
  }
  
  .program-day-card > div {
    padding: 15px !important;
  }
}

/* ======================================================
   FINAL OVERRIDES — PROGRAM + USEFUL INFORMATION ONLY
   (keeps the rest of the site intact)
   ====================================================== */

/* ---------- PROGRAM: patterned background only (no white container) ---------- */
#program.program-section{
  background: url("images/background/fondo01_tramagris.png") repeat !important;
  overflow-x: hidden !important; /* Chrome safety */
}

/* Remove any white wrapper/card backgrounds inside PROGRAM (keep padding/layout) */
#program.program-section .wrap,
#program.program-section .program-wrap,
#program.program-section .program-container,
#program.program-section .program-wrapper,
#program.program-section .program-content,
#program.program-section .program-inner{
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Split program images (A/B) — 2 columns on desktop, stacked on mobile */
#program .program-images{
  width: 86% !important;
  margin: 30px auto 22px auto !important;
  display: flex !important;
  gap: 28px !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  box-sizing: border-box !important;
}

#program .program-image-col{
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

#program .program-images img{
  display: block !important;
  width: 100% !important;          /* prevents Chrome “natural size” overflow */
  max-width: 100% !important;
  height: auto !important;
  border-radius: 10px !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.18) !important;
}

@media (max-width: 768px){
  #program .program-images{
    width: 92% !important;
    flex-direction: column !important;
    gap: 18px !important;
  }
}

/* ---------- USEFUL INFORMATION: purple background + show real ribbon image ---------- */
#moreinfo.moreinfo-section{
  background: #d4b5e8 !important;
}

/* Ribbon full-bleed, like PROGRAM */
#moreinfo .moreinfo-ribbon-img-wrap{
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  margin-bottom: 1.4rem !important;
}

/* Force the <img> ribbon to render (avoid any accidental “text-only” fallback) */
#moreinfo img.moreinfo-ribbon-img{
  height: 70px !important;
  width: auto !important;
  max-width: 100% !important;
  display: block !important;
  object-fit: contain !important;
}

@media (max-width: 768px){
  #moreinfo img.moreinfo-ribbon-img{ height: 56px !important; }
}


/* =========================================================
   AUTHORITIES – Layout tweaks requested (Feb 2026)
   1) Honorary Chair + Honorary Committee on one row (4)
   2) Local Organizing Committee on one row (5 when space allows)
   3) Scientific Committee: continuous grid, 4 per row, country inside card
   ========================================================= */

/* Honorary row: same 4 columns with 240px minimum as committees */
.gov-block.chairs-block .gov-grid.honorary-grid{
  grid-template-columns: repeat(4, minmax(240px, 1fr)) !important;
}

/* Local Organizing Committee: restrict column width to match honorary visual size */
.gov-block.local-org{
  padding-top: 0 !important; /* Remove padding to align title with HONORARY */
}
.gov-block.local-org .gov-block-title{
  margin-left: 26px; /* Align with first card when grid is centered */
}
.gov-block.local-org .gov-grid{
  grid-template-columns: repeat(4, minmax(240px, 260px)) !important;
  justify-content: center; /* Center the grid items */
}
@media (max-width: 980px){
  .gov-block.local-org .gov-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .gov-block.local-org .gov-block-title{
    margin-left: 0; /* Reset margin on smaller screens */
  }
}
@media (max-width: 620px){
  .gov-block.local-org .gov-grid{
    grid-template-columns: 1fr !important;
  }
}

/* Scientific Committee: restrict column width to match honorary visual size */
.scientific-committee{
  padding-top: 0 !important; /* Remove padding to align title with HONORARY */
}
.scientific-committee .gov-block-title{
  margin-left: 26px; /* Align with first card when grid is centered */
}
.scientific-committee .gov-grid.scientific-grid{
  grid-template-columns: repeat(4, minmax(240px, 260px)) !important;
  justify-content: center; /* Center the grid items */
}
@media (max-width: 1024px){
  .scientific-committee .gov-grid.scientific-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .scientific-committee .gov-block-title{
    margin-left: 0; /* Reset margin on smaller screens */
  }
}
@media (max-width: 640px){
  .scientific-committee .gov-grid.scientific-grid{
    grid-template-columns: 1fr !important;
  }
}

/* Country line inside cards (already used elsewhere; ensure spacing) */
.scientific-committee .gov-meta{
  margin-top: 0.15rem;
}


/* =====================================================================
   Governance tweaks (Feb 2026): spacing + tighter committee grids
   ===================================================================== */

/* Separate Honorary line from Chairs line with same "air" as other blocks */
.gov-subblock{
  margin-top: 2.3rem;
}
/* Extra breathing room between Chair row and Honorary row */
.gov-subblock.honorary-subblock{
  margin-top: 2.8rem;
}



