/* ===== CORREÇÃO DEFINITIVA DAS TABS ACF ===== */
/* Forçar todas as tabs em uma única linha */
.acf-field-group .acf-tab-wrap {
    display: flex !important;
    flex-wrap: nowrap !important;
    flex-direction: row !important;
    white-space: nowrap !important;
    overflow-x: auto !important;
    width: 100% !important;
    clear: both !important;
    float: none !important;
}

.acf-field-group .acf-tab-wrap ul {
    display: flex !important;
    flex-wrap: nowrap !important;
    flex-direction: row !important;
    white-space: nowrap !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.acf-field-group .acf-tab-wrap li {
    display: inline-block !important;
    white-space: nowrap !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.acf-field-group .acf-tab-wrap a {
    display: inline-block !important;
    white-space: nowrap !important;
    float: none !important;
    clear: none !important;
    margin-right: 2px !important;
    position: relative !important;
}

/* Remover quebras de linha */
.acf-field-group .acf-tab-wrap br,
.acf-field-group .acf-tab-wrap .clear,
.acf-field-group .acf-tab-wrap .clearfix {
    display: none !important;
    clear: none !important;
    height: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Garantir que apenas uma tab seja ativa */
.acf-field-group .acf-tab.active,
.acf-field-group .acf-tab-wrap a.active {
    background: #0073aa !important;
    color: white !important;
}

.acf-field-group .acf-tab:not(.active),
.acf-field-group .acf-tab-wrap a:not(.active) {
    background: #f1f1f1 !important;
    color: #333 !important;
}

.acf-field-group .acf-tab-panel:not(.active) {
    display: none !important;
}

.acf-field-group .acf-tab-panel.active {
    display: block !important;
}

/* Global utility classes */
.hidden {
    display: none !important;
}

/* ===================================
   CSS VARIABLES & ROOT STYLES
   =================================== */
:root {
    --color-pink-accent: #ee1a98;
    --color-purple-secondary: #654da0;
    --color-dark-purple: #0b0616;

    /* Color System - Content Colors */
    --color-content-low: #718096;      /* Desaturated medium-dark blue-grey */
    --color-content-medium: #4B5563;   /* Slightly darker desaturated blue-grey */
    --color-content-high: #1F2937;     /* Very dark desaturated blue-grey */

    /* Color System - On Background Colors */
    --color-on-bg-high: #ffffff;       /* White */
    --color-on-bg-medium: rgba(255,255,255,0.8);     /* Light grey */
    --color-on-bg-low: rgba(255,255,255,0.6);        /* Medium grey */

    /* Color System - Primary Colors */
    --color-primary: #ee1a98;          /* Bright pink/magenta */
    --color-secondary: #654DA0;        /* Dark purple */
    --color-background: #0B0616;       /* Very dark blue-purple */

    /* Color System - Accent Colors */
    --color-accent-primary: #42BEF4;   /* Bright cyan/light blue */
    --color-accent-secondary: #91CBA5; /* Light green/mint */

    /* Color System - Gradient Colors */
    --gradient-primary: linear-gradient(to right, var(--color-primary), var(--color-secondary));    /* Pink to dark purple */
    --gradient-secondary: linear-gradient(to right, var(--color-accent-primary), var(--color-accent-secondary));  /* Cyan to green */

    /* Breakpoints System */
    --breakpoint-mobile: 480px;        /* Mobile breakpoint */
    --breakpoint-tablet: 640px;        /* Small tablet breakpoint */
    --breakpoint-md: 768px;            /* Medium tablet breakpoint */
    --breakpoint-lg: 1024px;           /* Large tablet/small desktop breakpoint */
    --breakpoint-xl: 1200px;           /* Extra large desktop breakpoint */
    --breakpoint-desktop: 1440px;      /* Desktop breakpoint */

    /* Container Max-Widths */
    --container-mobile: 100%;          /* Mobile container width */
    --container-tablet: 640px;         /* Tablet container width */
    --container-md: 768px;             /* Medium container width */
    --container-lg: 1024px;            /* Large container width */
    --container-xl: 1200px;            /* Extra large container width */
    --container-desktop: 1440px;       /* Desktop container width */

    /* Standard Horizontal Padding */
    --padding-horizontal-mobile: var(--spacing-2);     /* 16px */
    --padding-horizontal-desktop: var(--spacing-3);    /* 24px */

    /* Component Max-Widths */
    --max-width-modal: 550px;          /* Modal max width */
    --max-width-timeline: 900px;       /* Timeline max width */
    --max-width-hero-frame: 820px;     /* Hero frame max width */
    --max-width-logo: 380px;           /* Logo max width */
    --max-width-venue-image: 500px;    /* Venue image max width */
    --max-width-sponsor-logo: 80px;    /* Sponsor logo max width */

    /* Spacing System - Base 8px */
    --spacing-0-5: 4px;      /* 0.5 * 8px */
    --spacing-1: 8px;        /* 1 * 8px */
    --spacing-2: 16px;       /* 2 * 8px */
    --spacing-3: 24px;       /* 3 * 8px */
    --spacing-4: 32px;       /* 4 * 8px */
    --spacing-5: 40px;       /* 5 * 8px */
    --spacing-6: 48px;       /* 6 * 8px */
    --spacing-7: 56px;       /* 7 * 8px */
    --spacing-8: 64px;       /* 8 * 8px */
    --spacing-9: 72px;       /* 9 * 8px */
    --spacing-10: 80px;      /* 10 * 8px */
    --spacing-11: 88px;      /* 11 * 8px */
    --spacing-12: 96px;      /* 12 * 8px */
    --spacing-16: 128px;     /* 16 * 8px */

    /* Spacing with rem units for better scaling */
    --spacing-0-5-rem: 0.25rem;   /* 4px */
    --spacing-1-rem: 0.5rem;      /* 8px */
    --spacing-2-rem: 1rem;        /* 16px */
    --spacing-3-rem: 1.5rem;      /* 24px */
    --spacing-4-rem: 2rem;        /* 32px */
    --spacing-5-rem: 2.5rem;      /* 40px */
    --spacing-6-rem: 3rem;        /* 48px */
    --spacing-7-rem: 3.5rem;      /* 56px */
    --spacing-8-rem: 4rem;        /* 64px */
    --spacing-9-rem: 4.5rem;      /* 72px */
    --spacing-10-rem: 5rem;       /* 80px */
    --spacing-11-rem: 5.5rem;     /* 88px */
    --spacing-12-rem: 6rem;       /* 96px */
    --spacing-16-rem: 8rem;       /* 128px */

    /* Text Styles - Title Category */
    --text-display-size: 64px;
    --text-display-line-height: 1.2em;
    
    --text-h2-size: 48px;
    --text-h2-line-height: 1.2em;
    
    --text-h3-size: 36px;
    --text-h3-line-height: 1.2em;
    
    --text-h4-size: 26px;
    --text-h4-line-height: 1.2em;

    /* Footer Styles */
    .footer-faq-section {
        background-color: var(--color-dark-purple);
        padding-top: 5rem;
        color: white;
        border-top: 1px solid var(--color-content-high);
    }
    
    --text-h5-size: 20px;
    --text-h5-line-height: 1.2em;
    
    --text-h6-size: 18px;
    --text-h6-line-height: 120%;

    /* Text Styles - Small Category */
    --text-small-regular-size: 12px;
    --text-small-regular-line-height: auto;
    --text-small-semibold-size: 12px;
    --text-small-semibold-line-height: auto;

    /* Text Styles - Base Category */
    --text-base-regular-size: 16px;
    --text-base-regular-line-height: 140%;
    --text-base-semibold-size: 16px;
    --text-base-semibold-line-height: auto;

    /* Text Styles - Large Category */
    --text-large-regular-size: 18px;
    --text-large-regular-line-height: auto;
    --text-large-semibold-size: 18px;
    --text-large-semibold-line-height: auto;

    /* Calendar System */
    --calendar-columns: 1fr 1fr 1fr;
    --slot-height: 56px;

    /* Exhibition area colors - thematic by subject */
    --color-lounge: var(--color-pink-accent);           /* Pink for networking/lounge */
    --color-business: #F97316;                          /* Orange for business/commercial */
    --color-vip: #EAB308;                              /* Yellow/Gold for VIP/premium */
    --color-auditorium: var(--color-accent-primary);   /* Blue for learning/auditoriums */
    --color-technology: var(--color-accent-secondary);  /* Green for technology/innovation */
}

html {
    scroll-behavior: smooth;
}
body {
    background-color: var(--color-background);
}
#body {
    font-family: var(--font-sans);
}

#nav-links {
    font-family: var(--font-display);
    font-weight: 500;
}

.hero-navbar {
    background-color: #1f072f;
    position: sticky;
    top: 0;
    z-index: 100;
}
.hero-gradient {
    background: linear-gradient(270deg, #e92d8b, #6e4193, #e92d8b, #6e4193); 
    background-size: 800% 800%; 
    animation: gradientAnimation 60s ease infinite;
}
.hero-logo {
    max-width: var(--max-width-logo);
    height: auto;
}

@keyframes gradientAnimation {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.radial-effect-container {
    position: relative;
    overflow: hidden;
    z-index: 4;
}

.radial-effect {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(233, 45, 139, 0.15) 0%, rgba(233, 45, 139, 0) 60%);
    animation: radialSpin 30s linear infinite;
    transform-origin: center center;
    pointer-events: none;
}

@keyframes radialSpin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

.sponsor-track {
    display: flex;
    width: max-content;
    gap: 2rem; /* Space between logos */
    animation: scrollSponsors 30s linear infinite;
}

.sponsor-track:hover {
    animation-play-state: paused;
}

@keyframes scrollSponsors {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(-50% + 1rem)); }
}

.carousel {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none; 
}
.carousel::-webkit-scrollbar {
    display: none; 
}
.carousel-item {
    flex: 0 0 auto;
    scroll-snap-align: start;
    margin-right: 1rem; 
}
.carousel-container-padding {
    padding-left: var(--padding-horizontal-mobile); 
    padding-right: var(--padding-horizontal-mobile); 
}
@media (min-width: var(--breakpoint-tablet)) {
    .carousel-container-padding {
        padding-left: var(--padding-horizontal-desktop);
        padding-right: var(--padding-horizontal-desktop);
    }
}

.card-image-container {
    aspect-ratio: 4 / 5;
    overflow: hidden;
}
.card-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Timeline Horizontal Markers */
.timeline-markers-container {
    display: flex;
    justify-content: space-between;
    align-items: normal;
    position: relative;
    max-width: var(--max-width-timeline);
    margin: 0 auto;
    padding: 0 2rem;
}

.timeline-horizontal-line {
    position: absolute;
    top: 40px;
    left: 2rem;
    right: 2rem;
    height: 2px;
    background: linear-gradient(to right, rgba(101, 77, 160, 0), rgba(101, 77, 160, 0) 50px, rgba(101, 77, 160, 0.3) 200px, rgba(101, 77, 160, 0.3) calc(100% - 200px), rgba(101, 77, 160, 0) calc(100% - 50px), rgba(101, 77, 160, 0));
    z-index: 0;
}

/* Removendo a barra de progresso que não será mais usada */
.timeline-progress {
    display: none;
}

.timeline-marker {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    z-index: 2;
    padding-top: 0;
    width: 160px;
}

.timeline-marker-circle {
    /* width: 84px;
    height: 84px; */
    padding: 10px;
    background-color: white;
    border: 2px solid rgba(101, 77, 160, 0.3);
    border-radius: 50%;
    margin-bottom: 1.25rem;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.timeline-marker-circle img {
    width: 56px;
    height: 56px;
}

.timeline-marker-circle i {
    font-size: 1.25rem;
    color: var(--color-purple-secondary);
    opacity: 0.5;
    transition: all 0.3s ease;
}

.timeline-marker-label {
    font-family: var(--font-display);
    font-size: 0.875rem;
    color: #4B5563;
    line-height: 1.2;
    font-weight: 600;
    margin-bottom: 0.25rem;
    transition: color 0.3s ease;
}

.timeline-marker-date {
    font-size: 0.75rem;
    color: #6B7280;
    font-weight: 500;
    opacity: 0.8;
}

.timeline-marker.active .timeline-marker-circle {
    border-color: var(--color-pink-accent);
    background-color: white;
    opacity: 1;
    transform: scale(1.1);
    box-shadow: 0 10px 15px -3px rgba(236, 72, 153, 0.3);
}

.timeline-marker.active .timeline-marker-circle i {
    color: var(--color-pink-accent);
    opacity: 1;
}

.timeline-marker.active .timeline-marker-label {
    color: var(--color-pink-accent);
}

.timeline-marker.active .timeline-marker-date {
    color: var(--color-pink-accent);
    opacity: 1;
}

/* Timeline Content Layout - Two Columns */
.timeline-content-layout {
    display: grid;
    grid-template-columns: 1fr 250px;
    gap: 2rem;
    background-color: #fff;
    border-radius: 0.5rem;
    max-width: var(--container-xl);
    margin: 0 auto;
}

.timeline-main-content {
    padding: 1.5rem;
    background-color: #fff;
    border-radius: 0.5rem;
}

.timeline-content-section {
    /* padding-bottom: 1rem; */
    margin-bottom: 1rem;
    /* border-bottom: 1px solid rgba(236, 72, 153, 0.2); */
}

.timeline-content-section h2 {
    font-family: var(--font-display);
    font-size: 20px;
    line-height: 1.2;
    margin-bottom: 1rem;
}

.timeline-content-section h3 {
    font-family: var(--font-display);
    font-size: 20px;
    line-height: 1.2;
    margin-bottom: 1rem;
}

.timeline-content-section p,
.timeline-content-section a,
.timeline-content-section li,
.timeline-content-section ul,
.timeline-content-section span {
    font-size: 16px !important;
    line-height: 1.3    ;
}

h3.timeline-main-content-title {
    font-size: 32px;
}
h3.timeline-main-content-title + p {
    font-size: 24px !important;
}

.timeline-content-section strong {
    font-size: inherit;
}

.timeline-content-section .text-lg,
.timeline-content-section .text-xl,
.timeline-content-section .text-2xl,
.timeline-content-section .text-3xl,
.timeline-content-section .text-4xl {
    font-size: 14px !important;
}

.timeline-content-section a.btn-gradient-accent {
    font-size: 16px !important;
    padding: 1rem 1.5rem;
}

.timeline-sidebar {
    padding: 1.5rem 0;
}

.timeline-sidebar-nav {
    position: sticky;
    top: 100px;
    padding-right: 1rem;
    padding-top: var(--spacing-4);
}

.timeline-sidebar-nav a {
    display: block;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.375rem;
    color: #4B5563;
    font-size: 14px;
    font-weight: 500;
    border-radius: 0.375rem;
    transition: all 0.2s ease;
    border-left: 3px solid transparent;
}

.timeline-sidebar-nav a.active {
    /* color: white; */
    font-weight: 600;
    background-color: rgba(238, 26, 152, 0.1);
}

/* Button styles */
.btn-gradient-accent {
    color: white !important;
    text-decoration: none !important;
}

.timeline-content-section a.btn-gradient-accent {
    color: white !important;
    text-decoration: none !important;
}

/* Override any Tailwind text-base class */
.timeline-content-section .text-base {
    font-size: 16px !important;
}
.timeline-content-section:first-of-type .text-base {
    font-size: 20px !important;
}

/* Responsive adjustments */
@media (max-width: var(--breakpoint-md)) {
    .timeline-content-layout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .timeline-sidebar {
        order: -1;
        padding: 1rem;
        background: white;
        top: 5rem !important;
    }

    .timeline-sidebar-nav {
        position: static;
        display: flex;
        overflow-x: auto;
        z-index: 1;
        padding-bottom: 0.75rem;
        margin: -1rem;
        padding: 1rem;
        border-radius: 10px;
        border: 1px solid rgba(233, 45, 139, 0.5);
    }

    .timeline-sidebar-nav a {
        flex: 0 0 auto;
        white-space: nowrap;
        margin-right: 0.5rem;
        margin-bottom: 0;
        font-size: 13px;
        padding: 0.375rem 0.75rem;
    }

    .timeline-content-section h2,
    .timeline-content-section h3 {
        font-size: 18px;
    }
}

@media (max-width: var(--breakpoint-tablet)) {
    .timeline-markers-container {
        overflow-x: auto;
        justify-content: flex-start;
        padding-bottom: 2rem;
        margin: 0 -1rem;
        padding: 0 1rem;
    }

    .timeline-marker {
        flex: 0 0 auto;
        margin-right: 2rem;
    }

    .timeline-horizontal-line {
        left: 1rem;
        right: 1rem;
    }

    .timeline-progress {
        left: 1rem;
    }
}

.modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.7); }
.modal-content { margin: 8% auto; padding: 1.5rem; border-radius: 0.5rem; width: 90%; max-width: var(--max-width-modal); position: relative; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
.close-button { color: #9CA3AF; float: right; font-size: 1.5rem; font-weight: bold; position: absolute; top: 0.5rem; right: 0.75rem; }
.close-button:hover, .close-button:focus { text-decoration: none; cursor: pointer; }

.hero-text-shape { background-color: rgba(40, 20, 60, 0.65); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-radius: 0.5rem; padding: 2rem; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25); }
@media (min-width: var(--breakpoint-md)) { .hero-text-shape { padding: 2.5rem; } }

.navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background-color: transparent;
    transition: all 0.3s ease;
}

.navbar.scrolled {
    background-color: rgba(11, 6, 22, 0.9);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    overflow: hidden;
}

.nav-logo-container {
    transform: scale(2.5) translateY(2px) translateX(20%);
}

.custom-container { 
    max-width: var(--container-desktop);
    width: 100%;
    margin: 0 auto;
    padding-left: var(--padding-horizontal-mobile);
    padding-right: var(--padding-horizontal-mobile);
}

@media (min-width: var(--breakpoint-tablet)) {
    .custom-container {
        padding-left: var(--padding-horizontal-desktop);
        padding-right: var(--padding-horizontal-desktop);
    }
}

.page-header {
    width: 100%; 
    margin-left: auto; 
    margin-right: auto; 
    padding-left: var(--padding-horizontal-mobile); 
    padding-right: var(--padding-horizontal-mobile);
    margin-top: calc(var(--spacing-12) + calc(var(--spacing-1) * 16));
    margin-bottom: var(--spacing-12);
    max-width: var(--container-desktop);
}

@media (min-width: var(--breakpoint-tablet)) {
    .page-header {
        padding-left: var(--padding-horizontal-desktop);
        padding-right: var(--padding-horizontal-desktop);
    }
}

@media (min-width: var(--breakpoint-desktop)) {
    .custom-container,
    .page-header {
        padding-left: 0;
        padding-right: 0;
    }
}

.hero-frame {
    display: flex;
    flex-wrap: wrap;
    position: relative;
    width: 100%;
    min-height: 60vh;
    border: 3px solid rgb(14 2 22 / 41%);
}

.hero-frame-left {
    position: relative;
    z-index: 2;
    padding: 4rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100%;
    background: rgb(14 2 22 / 41%);
    backdrop-filter: blur(10px);

    max-width: var(--max-width-hero-frame);
    width: 100%;
    flex-shrink: 0;
    flex-grow: 1;
}

.hero-frame-logo {
    display: flex;
    align-items: flex-start;
    padding-bottom: 5rem;
    justify-content: left;

    margin: -30px 0;
}

.hero-frame-content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.hero-frame-right {
    flex: 1;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-logo {
    max-width: var(--max-width-logo);
    height: auto;
}

@media (max-width: var(--breakpoint-lg)) {
    .hero-frame {
        flex-direction: column;
    }

    .hero-frame-left {
        width: 100%;
        max-width: 100%;
    }

    .hero-frame-right {
        width: 100%;
        padding: 2rem;
    }
}

@media (max-width: var(--breakpoint-md)) {
    .hero-frame-left {
        padding: 2rem;
        gap: 3rem;
    }
}

.hero-frame .text-white\/90 {
    color: rgba(255, 255, 255, 0.95);
}

.hero-frame .text-white\/80 {
    color: rgba(255, 255, 255, 0.9);
}

/* Typewriter Effect */
.typewriter {
    position: relative;
    width: fit-content;
    width: 100%;
}

.typewriter-cursor {
    display: inline-block;
    color: #e92d8b !important;
    font-weight: normal;
    margin-left: 2px;
    animation: cursor-blink 0.8s step-end infinite;
}

@keyframes cursor-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

.typewriter-cursor.finished {
    color: #9b4dca !important;
    animation: cursor-blink-end 1.5s step-end infinite;
    display: none;
}

@keyframes cursor-blink-end {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

/* Ajuste para garantir que o título quebre em mobile */
@media (max-width: var(--breakpoint-md)) {
    .typewriter h1 {
        white-space: normal;
        border-right: none;
        width: auto;
        animation: none;
    }
    
    .typewriter::after {
        content: '|';
        color: #e92d8b;
        position: absolute;
        right: -8px;
        top: 0;
        animation: blink-caret 1.5s step-end infinite;
    }
}

.hero-lights {
    position: relative;
    z-index: 1;
}

.hero-lights::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to top, var(--color-dark-purple), transparent), rgba(31, 7, 47, 0.5);
    z-index: 1;
}

.hero-lights:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('../img/background/hero-background2.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
    filter: saturate(0.6) blur(1px);
    opacity: 0.6;
}

/* Override for custom hero background images */
.custom-hero-bg:after {
    display: none !important;
}

.btn-gradient-accent {
    position: relative;
    color: white;
    padding: 0.75rem 2rem;
    font-weight: 600;
    border-radius: 0.375rem; /* rounded-md */
    overflow: hidden;
    cursor: pointer;
    background-image: radial-gradient(circle at bottom left, var(--color-pink-accent), var(--color-purple-secondary));
    background-size: 200% 200%;
    background-position: bottom left;
    transition: box-shadow 0.6s ease, background-position 4s linear;
}

.btn-gradient-accent:hover {
    box-shadow: 0 0 15px rgba(238, 26, 152, 0.5);
    animation: gradient-move 3s ease-in-out infinite;
}

/* Synthesized small primary button */
.btn-primary-small {
    position: relative;
    color: white;
    padding: 0.5rem 1.5rem;
    font-weight: 600;
    font-size: 0.875rem;
    border-radius: 0.375rem;
    overflow: hidden;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    background-image: radial-gradient(circle at bottom left, var(--color-pink-accent), var(--color-purple-secondary));
    background-size: 200% 200%;
    background-position: bottom left;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.btn-primary-small:hover {
    box-shadow: 0 0 12px rgba(238, 26, 152, 0.4);
    animation: gradient-move 3s ease-in-out infinite;
}

.btn-primary-small:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* Synthesized medium primary button */
.btn-primary-medium {
    position: relative;
    color: white;
    padding: 0.75rem 2rem; /* 12px vertical, 32px horizontal */
    font-weight: 600;
    font-size: var(--text-large-semibold-size); /* 18px */
    line-height: var(--text-large-semibold-line-height);
    border-radius: 0.375rem;
    overflow: hidden;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    background-image: radial-gradient(circle at bottom left, var(--color-pink-accent), var(--color-purple-secondary));
    background-size: 200% 200%;
    background-position: bottom left;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.btn-primary-medium:hover {
    box-shadow: 0 0 15px rgba(238, 26, 152, 0.5);
    animation: gradient-move 3s ease-in-out infinite;
}

.btn-primary-medium:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}


/* Primary over secondary button */
.btn-primary-over-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 2rem; /* 12px vertical, 32px horizontal */
    font-size: var(--text-large-semibold-size); /* 18px */
    font-weight: 600;
    color: white;
    background-color: #1f2937;
    border: 1px solid transparent;
    border-radius: 0.375rem;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    transition: background-color 0.2s ease-in-out;
    text-decoration: none;
}

.btn-primary-over-secondary:hover {
    background-color: #111827;
    text-decoration: none;
}

.btn-primary-over-secondary:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(107, 114, 128, 0.5);
}

/* Secondary button - gradient from accent-primary to accent-secondary */
.btn-accent-medium {
    position: relative;
    color: var(--color-content-high);
    padding: 0.75rem 2rem;
    font-weight: 600;
    font-size: var(--text-large-semibold-size);
    line-height: var(--text-large-semibold-line-height);
    border-radius: 0.375rem;
    overflow: hidden;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    background-image: radial-gradient(circle at bottom left, var(--color-accent-secondary), var(--color-accent-primary));
    background-size: 120% 120%;
    background-position: bottom center;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.btn-accent-medium:hover {
    box-shadow: 0 0 15px rgba(66, 190, 244, 0.5);
    animation: gradient-move 3s ease-in-out infinite;
}

.btn-accent-medium:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* News Card Styles */
.news-card {
    width: 100%;
    border-radius: 0.75rem;
    overflow: hidden;
    background-color: rgba(255, 255, 255, 0.02);
    transition: all 0.3s ease;
}

.news-card:hover {
    /* Removido o efeito translateY */
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.news-card:focus {
    outline: none;
    box-shadow: 0 0 0 2px var(--color-pink-accent);
}

.news-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.news-card__image-container {
    position: relative;
    aspect-ratio: 16/9;
}

.news-card__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.6;
    transition: opacity 0.3s ease;
}

.news-card:hover .news-card__image {
    opacity: 0.7;
}

.news-card__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    /* Primeira camada de gradiente: linear gradient conforme anexo */
    background: linear-gradient(to right, #91CBA5 0%, #42BEF4 90%);
    opacity: 0.3;
}

.news-card__gradient {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.9) 100%);
}

.news-card__content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1.5rem;
}

.news-card__title {
    font-size: var(--text-h5-size);
    line-height: 1.4;
    font-weight: 600;
    margin-bottom: 0.75rem;
    color: white; /* Texto branco */
}

@media (min-width: 640px) {
    .news-card__title {
        font-size: 1.25rem;
    }
}

.news-card__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: white; /* Texto branco */
    font-size: var(--text-base-semibold-size);
}

.news-card__icon {
    width: var(--spacing-3);
    height: var(--spacing-3);
}

/* News Grid Layout */
.news-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .news-grid {
        gap: 2rem;
    }
}

.news-grid__item {
    width: 100%;
}

@media (min-width: 640px) {
    .news-grid__item {
        width: calc(33.333% - 1rem); /* 3 colunas desde tablet */
    }
}

@media (min-width: 1024px) {
    .news-grid__item {
        width: calc(33.333% - 1.4rem);
    }
}

/* Custom radial border box with backdrop blur */
.radial-border-box {
    position: relative;
    border-radius: 0.5rem; /* rounded-lg */
    background-color: rgba(11, 6, 22, 0.25); /* var(--color-background) at 25% opacity */
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    padding: 1rem; /* p-4 */
    overflow: hidden;
}

.radial-border-box::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 0.5rem;
    padding: 1px;
    background: radial-gradient(circle at center, var(--color-pink-accent), var(--color-purple-secondary));
    opacity: 0.2; /* 20% opacity */
    -webkit-mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

/* Responsive adjustments */
@media (min-width: var(--breakpoint-md)) {
    .radial-border-box {
        border-radius: 0.75rem; /* md:rounded-xl */
        padding: 1.5rem; /* md:p-6 */
    }
    
    .radial-border-box::before {
        border-radius: 0.75rem;
    }
}

/* Countdown Styles */
.countdown-finished {
    opacity: 0.7;
}

@keyframes gradient-move {
    0% {
        background-position: bottom left;
    }
    25% {
        background-position: top left;
    }
    50% {
        background-position: top right;
    }
    75% {
        background-position: bottom right;
    }
    100% {
        background-position: bottom left;
    }
}

.event-info-block {
    display: inline-flex;
    flex-direction: column;
    gap: 1rem;
    /* padding: 2rem 2.5rem; */
    transition: all 0.3s ease;
    width: auto;
    transform: translateY(-25%);
    position: relative;
    z-index: 3;
}

.event-info-block .event-date {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 46px;
    line-height: 0.8;
    letter-spacing: -0.02em;
    color: var(--color-pink-accent);
}

.event-info-block .event-month {
    font-family: var(--font-display);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
    font-size: 16px;
    color: var(--color-purple-secondary);
    margin-bottom: 0.25rem;
}

.event-info-block .event-location {
    font-family: var(--font-display);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
    font-size: 16px;
    color: var(--color-pink-accent);
}

.event-info-block .event-venue {
    font-family: var(--font-display);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.01em;
    font-size: 14px;
    color: var(--color-purple-secondary);
    opacity: 0.8;
}

@media (max-width: var(--breakpoint-md)) {
    .event-info-block {
        padding: 1.5rem;
        width: 100%;
    }

    .event-info-block .flex {
        flex-direction: column;
        gap: 1.5rem;
        align-items: center;
    }

    .event-info-block .event-date {
        font-size: 42px;
    }

    .event-info-block .event-month,
    .event-info-block .event-location {
        font-size: 14px;
        text-align: center;
    }

    .event-info-block .event-venue {
        font-size: 12px;
    }
}

/* Stats Cards Styles */
.bg-theme-dark {
    background-color: var(--color-dark-purple);
}

.stats-card {
    position: relative;
    background: var(--color-dark-purple);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 0 30px rgba(236, 72, 153, 0.15);
}
.stats-card-icon {
    width: 72px;
    height: 72px;
}

.stats-card::before {
    content: '';
    position: absolute;
    inset: 0;
    padding: 3px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(236, 72, 153, 0.5), rgba(99, 102, 241, 0.5));
    -webkit-mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.stats-card-glow {
    background: radial-gradient(circle at center, rgba(236, 72, 153, 0.2), transparent 70%);
    filter: blur(20px);
}

.stats-card-content {
    position: relative;
    z-index: 1;
}

/* Image Mosaic */
.mosaic-grid {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.mosaic-top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    height: 250px;
}

.mosaic-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0.5rem;
    height: 250px;
}

/* Ajustes para linhas com menos de 3 itens */
.mosaic-row[data-cols="3"] .mosaic-item:first-child:nth-last-child(1) {
    grid-column: span 2;
}

.mosaic-row[data-cols="3"] .mosaic-item:first-child:nth-last-child(2) {
    grid-column: span 1;
}

.mosaic-row[data-cols="3"] .mosaic-item:last-child:nth-last-child(2) {
    grid-column: span 2;
}

/* Ajuste específico para quando há apenas 2 itens em uma linha de 3 colunas */
.mosaic-row[data-cols="3"] .mosaic-item:nth-child(2):last-child {
    grid-column: span 2;
}

/* Regra mais específica para garantir que o segundo item ocupe 2 colunas quando há apenas 2 itens */
.mosaic-row[data-cols="3"] .mosaic-item:nth-child(2):last-child {
    grid-column: 2 / span 2;
}

/* Classes específicas para linhas com menos de 3 itens */
.mosaic-row-1-items .mosaic-item:first-child {
    grid-column: span 2;
}

.mosaic-row-2-items .mosaic-item:first-child {
    grid-column: span 1;
}

.mosaic-row-2-items .mosaic-item:last-child {
    grid-column: span 2;
}

/* Ajuste para garantir que os itens preencham todo o espaço disponível */
.mosaic-row-2-items .mosaic-item:first-child {
    grid-column: 1 / 2;
}

.mosaic-row-2-items .mosaic-item:last-child {
    grid-column: 2 / 4;
}

/* Estilos para itens vazios */
.mosaic-item.empty {
    background: transparent;
    border: none;
    visibility: hidden;
}

/* Responsividade */
@media (max-width: var(--breakpoint-md)) {
    .mosaic-top,
    .mosaic-row {
        height: 200px;
        gap: 0.375rem;
    }
    
    .mosaic-grid {
        gap: 0.375rem;
    }
}

.mosaic-item {
    position: relative;
    /* border: 2px solid rgba(236, 72, 153, 0.2); */
    /* border-radius: 8px; */
    overflow: hidden;
    min-height: 100px;
    background: rgba(236, 72, 153, 0.2);
    /* background: linear-gradient(45deg, var(--color-purple-secondary), var(--color-dark-purple)); */
}

.mosaic-item::after {
    /* content: attr(data-number); */
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: rgba(255, 255, 255, 0.7);
    font-weight: bold;
}

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

/* Tema Item Styles */
.tema-item {
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

.tema-item:hover {
    border-color: rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.05);
}

.tema-item.active {
    background: white;
    border-color: white;
}

.tema-item.active h3 {
    color: var(--color-dark-purple);
}

/* Extended image container styles */
.extended-image-container {
    position: relative;
}

/* Hide scrollbar but keep functionality */
.hide-scrollbar {
    scrollbar-width: none;
    -ms-overflow-style: none;
    scroll-behavior: smooth;
}

.hide-scrollbar::-webkit-scrollbar {
    display: none;
}

/* Image wrapper styles */
.image-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    mask-image: linear-gradient(to right, transparent, rgba(0,0,0,0.15) 25%, rgba(0,0,0,0.8) 60%);
    -webkit-mask-image: linear-gradient(to right, transparent, rgba(0,0,0,0.15) 25%, rgba(0,0,0,0.8) 60%);
}

.image-wrapper::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
        circle at center right,
        transparent 0%,
        var(--color-dark-purple) 100%
    );
    mix-blend-mode: multiply;
    pointer-events: none;
}

.image-wrapper::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        var(--color-dark-purple) 0%,
        transparent 100%
    );
    pointer-events: none;
}

/* Tema Details Transitions */
#temaTitle,
#temaDescription,
#temaImage {
    transition: opacity 0.3s ease;
}

#temaDetails {
    min-height: 500px;
}

/* Sponsor Track Animation */
@keyframes scrollLeft {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-50%));
    }
}

.sponsor-track {
    display: flex;
    align-items: center;
    white-space: nowrap;
}

.sponsor-logo {
    height: auto;
    max-height: 36px;
    object-fit: contain;
    display: inline-block;
    vertical-align: middle;
    user-select: none;
    pointer-events: none;
    transition: margin-right 0.3s ease;
}

.sponsor-track:hover {
    animation-play-state: paused;
}

/* Content styles */
.timeline-content-section a {
    color: var(--color-pink-accent);
    text-decoration: underline;
    transition: color 0.2s ease;
}

.timeline-content-section a:hover {
    color: var(--color-purple-secondary);
}

.timeline-content-section ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.timeline-content-section ul li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.5rem;
}

.timeline-content-section ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5rem;
    width: 6px;
    height: 6px;
    background-color: var(--color-pink-accent);
    border-radius: 50%;
}

/* Remove os estilos anteriores de marcadores */
.timeline-content-section .inline-block.w-2.h-2 {
    display: none;
}

/* Ajuste do espaçamento do texto */
.timeline-content-section ul li span,
.timeline-content-section ul li div {
    display: block;
    line-height: 1.5;
}

/* Language flags */
.language-flag {
    padding: 0.25rem;
    transition: all 0.3s ease;
    opacity: 0.7;
}

.language-flag img {
    filter: grayscale(100%);
    transition: all 0.3s ease;
    border-radius: 2px;
}

.language-flag:hover {
    opacity: 1;
}

.language-flag:hover img {
    filter: grayscale(0%);
}

.language-flag.active {
    opacity: 1;
}

.language-flag.active img {
    filter: grayscale(0%);
}

/* Countdown boxes with gradient border */
.countdown-box {
    position: relative;
    background: transparent;
    border-radius: 0.375rem;
    padding: 1px;
}

.countdown-box::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 6px;
    padding: 1px;
    background: linear-gradient(to right, var(--color-pink-accent), var(--color-purple-secondary));
    -webkit-mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.countdown-box-inner {
    background: transparent;
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
}

/* Utility Classes for Colors */

/* Content Colors */
.text-content-low { color: var(--color-content-low); }
.text-content-medium { color: var(--color-content-medium); }
.text-content-high { color: var(--color-content-high); }

.bg-content-low { background-color: var(--color-content-low); }
.bg-content-medium { background-color: var(--color-content-medium); }
.bg-content-high { background-color: var(--color-content-high); }

.border-content-low { border-color: var(--color-content-low); }
.border-content-medium { border-color: var(--color-content-medium); }
.border-content-high { border-color: var(--color-content-high); }

/* On Background Colors */
.text-on-bg-high { color: var(--color-on-bg-high); }
.text-on-bg-medium { color: var(--color-on-bg-medium); }
.text-on-bg-low { color: var(--color-on-bg-low); }

.bg-on-bg-high { background-color: var(--color-on-bg-high); }
.bg-on-bg-medium { background-color: var(--color-on-bg-medium); }
.bg-on-bg-low { background-color: var(--color-on-bg-low); }

.border-on-bg-high { border-color: var(--color-on-bg-high); }
.border-on-bg-medium { border-color: var(--color-on-bg-medium); }
.border-on-bg-low { border-color: var(--color-on-bg-low); }

/* Primary Colors */
.text-primary { color: var(--color-primary); }
.text-secondary { color: var(--color-secondary); }

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

.border-primary { border-color: var(--color-primary); }
.border-secondary { border-color: var(--color-secondary); }

/* Accent Colors */
.text-accent-primary { color: var(--color-accent-primary); }
.text-accent-secondary { color: var(--color-accent-secondary); }

.bg-accent-primary { background-color: var(--color-accent-primary); }
.bg-accent-secondary { background-color: var(--color-accent-secondary); }

.border-accent-primary { border-color: var(--color-accent-primary); }
.border-accent-secondary { border-color: var(--color-accent-secondary); }

/* Gradient Backgrounds */
.bg-gradient-primary { background: var(--gradient-primary); }
.bg-gradient-secondary { background: var(--gradient-secondary); }

/* Hover States */
.hover\:text-primary:hover { color: var(--color-primary); }
.hover\:text-secondary:hover { color: var(--color-secondary); }
.hover\:text-accent-primary:hover { color: var(--color-accent-primary); }
.hover\:text-accent-secondary:hover { color: var(--color-accent-secondary); }

.hover\:bg-primary:hover { background-color: var(--color-primary); }
.hover\:bg-secondary:hover { background-color: var(--color-secondary); }
.hover\:bg-accent-primary:hover { background-color: var(--color-accent-primary); }
.hover\:bg-accent-secondary:hover { background-color: var(--color-accent-secondary); }

.hover\:border-primary:hover { border-color: var(--color-primary); }
.hover\:border-secondary:hover { border-color: var(--color-secondary); }
.hover\:border-accent-primary:hover { border-color: var(--color-accent-primary); }
.hover\:border-accent-secondary:hover { border-color: var(--color-accent-secondary); }

/* Focus States */
.focus\:text-primary:focus { color: var(--color-primary); }
.focus\:text-secondary:focus { color: var(--color-secondary); }
.focus\:text-accent-primary:focus { color: var(--color-accent-primary); }
.focus\:text-accent-secondary:focus { color: var(--color-accent-secondary); }

.focus\:bg-primary:focus { background-color: var(--color-primary); }
.focus\:bg-secondary:focus { background-color: var(--color-secondary); }
.focus\:bg-accent-primary:focus { background-color: var(--color-accent-primary); }
.focus\:bg-accent-secondary:focus { background-color: var(--color-accent-secondary); }

.focus\:border-primary:focus { border-color: var(--color-primary); }
.focus\:border-secondary:focus { border-color: var(--color-secondary); }
.focus\:border-accent-primary:focus { border-color: var(--color-accent-primary); }
.focus\:border-accent-secondary:focus { border-color: var(--color-accent-secondary); }

/* Utility Classes for Spacing */

/* Margin Utilities */
.m-0-5 { margin: var(--spacing-0-5); }
.m-1 { margin: var(--spacing-1); }
.m-2 { margin: var(--spacing-2); }
.m-3 { margin: var(--spacing-3); }
.m-4 { margin: var(--spacing-4); }
.m-6 { margin: var(--spacing-6); }
.m-8 { margin: var(--spacing-8); }
.m-12 { margin: var(--spacing-12); }
.m-16 { margin: var(--spacing-16); }

/* Margin Top */
.mt-0-5 { margin-top: var(--spacing-0-5); }
.mt-1 { margin-top: var(--spacing-1); }
.mt-2 { margin-top: var(--spacing-2); }
.mt-3 { margin-top: var(--spacing-3); }
.mt-4 { margin-top: var(--spacing-4); }
.mt-6 { margin-top: var(--spacing-6); }
.mt-8 { margin-top: var(--spacing-8); }
.mt-12 { margin-top: var(--spacing-12); }
.mt-16 { margin-top: var(--spacing-16); }

/* Margin Bottom */
.mb-0-5 { margin-bottom: var(--spacing-0-5); }
.mb-1 { margin-bottom: var(--spacing-1); }
.mb-2 { margin-bottom: var(--spacing-2); }
.mb-3 { margin-bottom: var(--spacing-3); }
.mb-4 { margin-bottom: var(--spacing-4); }
.mb-6 { margin-bottom: var(--spacing-6); }
.mb-8 { margin-bottom: var(--spacing-8); }
.mb-12 { margin-bottom: var(--spacing-12); }
.mb-16 { margin-bottom: var(--spacing-16); }

/* Margin Left */
.ml-0-5 { margin-left: var(--spacing-0-5); }
.ml-1 { margin-left: var(--spacing-1); }
.ml-2 { margin-left: var(--spacing-2); }
.ml-3 { margin-left: var(--spacing-3); }
.ml-4 { margin-left: var(--spacing-4); }
.ml-6 { margin-left: var(--spacing-6); }
.ml-8 { margin-left: var(--spacing-8); }
.ml-12 { margin-left: var(--spacing-12); }
.ml-16 { margin-left: var(--spacing-16); }

/* Margin Right */
.mr-0-5 { margin-right: var(--spacing-0-5); }
.mr-1 { margin-right: var(--spacing-1); }
.mr-2 { margin-right: var(--spacing-2); }
.mr-3 { margin-right: var(--spacing-3); }
.mr-4 { margin-right: var(--spacing-4); }
.mr-6 { margin-right: var(--spacing-6); }
.mr-8 { margin-right: var(--spacing-8); }
.mr-12 { margin-right: var(--spacing-12); }
.mr-16 { margin-right: var(--spacing-16); }

/* Margin X (Left & Right) */
.mx-0-5 { margin-left: var(--spacing-0-5); margin-right: var(--spacing-0-5); }
.mx-1 { margin-left: var(--spacing-1); margin-right: var(--spacing-1); }
.mx-2 { margin-left: var(--spacing-2); margin-right: var(--spacing-2); }
.mx-3 { margin-left: var(--spacing-3); margin-right: var(--spacing-3); }
.mx-4 { margin-left: var(--spacing-4); margin-right: var(--spacing-4); }
.mx-6 { margin-left: var(--spacing-6); margin-right: var(--spacing-6); }
.mx-8 { margin-left: var(--spacing-8); margin-right: var(--spacing-8); }
.mx-12 { margin-left: var(--spacing-12); margin-right: var(--spacing-12); }
.mx-16 { margin-left: var(--spacing-16); margin-right: var(--spacing-16); }

/* Margin Y (Top & Bottom) */
.my-0-5 { margin-top: var(--spacing-0-5); margin-bottom: var(--spacing-0-5); }
.my-1 { margin-top: var(--spacing-1); margin-bottom: var(--spacing-1); }
.my-2 { margin-top: var(--spacing-2); margin-bottom: var(--spacing-2); }
.my-3 { margin-top: var(--spacing-3); margin-bottom: var(--spacing-3); }
.my-4 { margin-top: var(--spacing-4); margin-bottom: var(--spacing-4); }
.my-6 { margin-top: var(--spacing-6); margin-bottom: var(--spacing-6); }
.my-8 { margin-top: var(--spacing-8); margin-bottom: var(--spacing-8); }
.my-12 { margin-top: var(--spacing-12); margin-bottom: var(--spacing-12); }
.my-16 { margin-top: var(--spacing-16); margin-bottom: var(--spacing-16); }

/* Padding Utilities */
.p-0-5 { padding: var(--spacing-0-5); }
.p-1 { padding: var(--spacing-1); }
.p-2 { padding: var(--spacing-2); }
.p-3 { padding: var(--spacing-3); }
.p-4 { padding: var(--spacing-4); }
.p-6 { padding: var(--spacing-6); }
.p-8 { padding: var(--spacing-8); }
.p-12 { padding: var(--spacing-12); }
.p-16 { padding: var(--spacing-16); }

/* Padding Top */
.pt-0-5 { padding-top: var(--spacing-0-5); }
.pt-1 { padding-top: var(--spacing-1); }
.pt-2 { padding-top: var(--spacing-2); }
.pt-3 { padding-top: var(--spacing-3); }
.pt-4 { padding-top: var(--spacing-4); }
.pt-6 { padding-top: var(--spacing-6); }
.pt-8 { padding-top: var(--spacing-8); }
.pt-12 { padding-top: var(--spacing-12); }
.pt-16 { padding-top: var(--spacing-16); }

/* Padding Bottom */
.pb-0-5 { padding-bottom: var(--spacing-0-5); }
.pb-1 { padding-bottom: var(--spacing-1); }
.pb-2 { padding-bottom: var(--spacing-2); }
.pb-3 { padding-bottom: var(--spacing-3); }
.pb-4 { padding-bottom: var(--spacing-4); }
.pb-6 { padding-bottom: var(--spacing-6); }
.pb-8 { padding-bottom: var(--spacing-8); }
.pb-12 { padding-bottom: var(--spacing-12); }
.pb-16 { padding-bottom: var(--spacing-16); }

/* Padding Left */
.pl-0-5 { padding-left: var(--spacing-0-5); }
.pl-1 { padding-left: var(--spacing-1); }
.pl-2 { padding-left: var(--spacing-2); }
.pl-3 { padding-left: var(--spacing-3); }
.pl-4 { padding-left: var(--spacing-4); }
.pl-6 { padding-left: var(--spacing-6); }
.pl-8 { padding-left: var(--spacing-8); }
.pl-12 { padding-left: var(--spacing-12); }
.pl-16 { padding-left: var(--spacing-16); }

/* Padding Right */
.pr-0-5 { padding-right: var(--spacing-0-5); }
.pr-1 { padding-right: var(--spacing-1); }
.pr-2 { padding-right: var(--spacing-2); }
.pr-3 { padding-right: var(--spacing-3); }
.pr-4 { padding-right: var(--spacing-4); }
.pr-6 { padding-right: var(--spacing-6); }
.pr-8 { padding-right: var(--spacing-8); }
.pr-12 { padding-right: var(--spacing-12); }
.pr-16 { padding-right: var(--spacing-16); }

/* Padding X (Left & Right) */
.px-0-5 { padding-left: var(--spacing-0-5); padding-right: var(--spacing-0-5); }
.px-1 { padding-left: var(--spacing-1); padding-right: var(--spacing-1); }
.px-2 { padding-left: var(--spacing-2); padding-right: var(--spacing-2); }
.px-3 { padding-left: var(--spacing-3); padding-right: var(--spacing-3); }
.px-4 { padding-left: var(--spacing-4); padding-right: var(--spacing-4); }
.px-6 { padding-left: var(--spacing-6); padding-right: var(--spacing-6); }
.px-8 { padding-left: var(--spacing-8); padding-right: var(--spacing-8); }
.px-12 { padding-left: var(--spacing-12); padding-right: var(--spacing-12); }
.px-16 { padding-left: var(--spacing-16); padding-right: var(--spacing-16); }

/* Padding Y (Top & Bottom) */
.py-0-5 { padding-top: var(--spacing-0-5); padding-bottom: var(--spacing-0-5); }
.py-1 { padding-top: var(--spacing-1); padding-bottom: var(--spacing-1); }
.py-2 { padding-top: var(--spacing-2); padding-bottom: var(--spacing-2); }
.py-3 { padding-top: var(--spacing-3); padding-bottom: var(--spacing-3); }
.py-4 { padding-top: var(--spacing-4); padding-bottom: var(--spacing-4); }
.py-6 { padding-top: var(--spacing-6); padding-bottom: var(--spacing-6); }
.py-8 { padding-top: var(--spacing-8); padding-bottom: var(--spacing-8); }
.py-12 { padding-top: var(--spacing-12); padding-bottom: var(--spacing-12); }
.py-16 { padding-top: var(--spacing-16); padding-bottom: var(--spacing-16); }

/* Gap Utilities for Flexbox and Grid */
.gap-0-5 { gap: var(--spacing-0-5); }
.gap-1 { gap: var(--spacing-1); }
.gap-2 { gap: var(--spacing-2); }
.gap-3 { gap: var(--spacing-3); }
.gap-4 { gap: var(--spacing-4); }
.gap-6 { gap: var(--spacing-6); }
.gap-8 { gap: var(--spacing-8); }
.gap-12 { gap: var(--spacing-12); }
.gap-16 { gap: var(--spacing-16); }

/* Utility Classes for Text Styles */

/* Title Styles */
.text-display {
    font-size: var(--text-display-size);
    line-height: var(--text-display-line-height);
}

.text-h2 {
    font-size: var(--text-h2-size);
    font-weight: bold;
    line-height: var(--text-h2-line-height);
}

.text-h3 {
    font-size: var(--text-h3-size);
    font-weight: bold;
    line-height: var(--text-h3-line-height);
}

.text-h4 {
    font-size: var(--text-h4-size);
    font-weight: bold;
    line-height: var(--text-h4-line-height);
}

.text-h5 {
    font-size: var(--text-h5-size);
    font-weight: bold;
    line-height: var(--text-h5-line-height);
}

.text-h6 {
    font-size: var(--text-h6-size);
    font-weight: bold;
    line-height: var(--text-h6-line-height);
}

/* Small Text Styles */
.text-small-regular {
    font-size: var(--text-small-regular-size);
    line-height: var(--text-small-regular-line-height);
    font-weight: 400;
}

.text-small-semibold {
    font-size: var(--text-small-semibold-size);
    line-height: var(--text-small-semibold-line-height);
    font-weight: 600;
}

/* Base Text Styles */
.text-base-regular {
    font-size: var(--text-base-regular-size);
    line-height: var(--text-base-regular-line-height);
    font-weight: 400;
}

.text-base-semibold {
    font-size: var(--text-base-semibold-size);
    line-height: var(--text-base-semibold-line-height);
    font-weight: 600;
}

/* Large Text Styles */
.text-large-regular {
    font-size: var(--text-large-regular-size);
    line-height: var(--text-large-regular-line-height);
    font-weight: 400;
}

.text-large-semibold {
    font-size: var(--text-large-semibold-size);
    line-height: var(--text-large-semibold-line-height);
    font-weight: 600;
}

/* Speaker Cards Styles */
.speaker {
    transition: all 0.3s ease;
}

.speaker:hover {
    cursor: pointer;
}

.speaker .aspect-square {
    position: relative;
    overflow: hidden;
    border-radius: 6px;
}

.speaker .aspect-square::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, var(--color-purple-secondary), transparent);
    z-index: 0;
    opacity: 0.4;
}

.speaker .aspect-square img {
    position: relative;
    z-index: 1;
    transition: transform 0.3s ease;
}

.speaker:hover .aspect-square img {
    transform: scale(1.05);
}

.speaker .text-base-semibold.text-primary {
    font-size: var(--text-base-semibold-size);
    line-height: var(--text-base-semibold-line-height);
    font-weight: 600;
    color: var(--color-primary);
}

.speaker h4.text-h5 {
    font-size: var(--text-h5-size);
    line-height: var(--text-h5-line-height);
    font-weight: 700;
    color: white;
}

.speaker .text-on-bg-medium.text-base-semibold {
    font-size: var(--text-base-semibold-size);
    line-height: var(--text-base-semibold-line-height);
    font-weight: 600;
    color: var(--color-on-bg-medium);
}

/* LinkedIn Icon Styles */
.speaker a svg {
    fill: url(#linkedin-gradient);
}

.speaker a svg defs {
    position: absolute;
    width: 0;
    height: 0;
}

.speaker a svg linearGradient {
    stop-color: var(--color-accent-secondary);
}

.speaker a svg linearGradient stop:last-child {
    stop-color: var(--color-accent-primary);
}


/* Speakers Toggle Animation */
#speakers-preview,
#speakers-full {
    transition: opacity 0.3s ease-in-out;
}

#speakers-preview.hidden,
#speakers-full.hidden {
    opacity: 0;
    pointer-events: none;
}

#speakers-cta {
    transition: opacity 0.3s ease-in-out;
}

#speakers-cta.hidden {
    opacity: 0;
    pointer-events: none;
}

/* Event Date and Location Layout - Fixed for Image Reference */
.event-date-location-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1rem;
    padding: 2rem;
    background-color: var(--color-dark-purple);
    min-height: 200px;
}

.event-date-display {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 3rem;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--color-pink-accent);
    text-align: center;
}

.event-date-display .date-numbers {
    color: var(--color-pink-accent);
    font-weight: 800;
}

.event-date-display .date-month {
    color: var(--color-pink-accent);
    font-weight: 700;
    font-size: 1.5rem;
    margin-left: 0.5rem;
}

.event-location-display {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.2;
    color: white;
    text-align: center;
    margin-top: 0.5rem;
}

/* Specific layout adjustments for the existing HTML structure */
.text-2xl.md\:text-3xl.font-semibold {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    text-align: center;
    gap: 0.5rem;
}

.text-2xl.md\:text-3xl.font-semibold .text-white {
    font-size: 32px !important;
    font-weight: 800;
    color: var(--color-primary) !important;
    line-height: 1;
}

.text-2xl.md\:text-3xl.font-semibold .text-white\/80 {
    font-size: var(--text-base-semibold-size) !important;
    font-weight: 600;
    color: var(--color-primary) !important;
}

.text-white\/80.text-sm.md\:text-base {
    font-size: 14px !important;
    color: var(--color-on-bg-medium) !important;
    font-weight: 400;
    line-height: 1.4;
    text-align: center;
}

/* Responsive adjustments */
@media (max-width: var(--breakpoint-md)) {
    .event-date-display {
        font-size: 2.5rem;
    }
    
    .event-date-display .date-month {
        font-size: 1.25rem;
    }
    
    .event-location-display {
        font-size: 1.125rem;
    }
}

@media (max-width: var(--breakpoint-mobile)) {
    .event-date-display {
        font-size: 2rem;
    }
    
    .event-date-display .date-month {
        font-size: 1rem;
    }
    
    .event-location-display {
        font-size: 1rem;
    }
}

/* Tickets Section Styles */
.tickets-section {
    background-color: var(--color-dark-purple);
    color: white;
    position: relative;
    overflow: visible;
    z-index: 0;
    overflow-x: hidden;
}

/* Shape as pseudo-element to avoid clipping */
.tickets-section::after {
    content: '';
    position: absolute;
    left: 60%;
    bottom: 0; /* allow the shape to extend beyond the section */
    transform: translateX(-50%);
    width: 100vw;
    top: -12vh;   /* also extend upward slightly */
    background-image: linear-gradient(to right, var(--color-background) 0%, rgba(11, 6, 22, 0) 60%), url('../img/shapes/shape-medium.svg');
    background-repeat: no-repeat, no-repeat;
    background-position: left center, center bottom;
    background-size: 100% 100%, min(100vw, 1400px) auto;
    pointer-events: none;
    z-index: 0;
}

/* Ensure section content stays above the decorative shape */
.tickets-section > * { position: relative; z-index: 1; }



/* Tickets layout grid */
.tickets-wrapper {
    display: grid;
    grid-template-columns: 1fr minmax(640px, 880px);
    align-items: start;
    gap: 2rem;
}

.tickets-left {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    z-index: 2;
    margin-bottom: -250px;
}

.tickets-right {
    width: 100%;
    grid-column: 1 / -1; /* ocupa as duas colunas para que a 1ª coluna da tabela fique abaixo do título */
    z-index: 1;
}

@media (max-width: var(--breakpoint-lg)) {
    .tickets-wrapper {
        grid-template-columns: 1fr;
    }
    .tickets-right {
        grid-column: 1 / -1;
        order: 2;
    }
    .tickets-left {
        order: 1;
    }
}

/* Ajuste das tabs para ficarem abaixo do título */
.ticket-nav {
    align-self: flex-start;
}

/* Ticket Navigation */
.ticket-nav {
    display: inline-flex;
    padding: 0.25rem;
    border-radius: 0.75rem;
    overflow: hidden;
    background-color: rgba(0, 0, 0, 0.2);
    width: fit-content;
    margin-bottom: var(--spacing-2);
    border: 1px solid transparent;
    background: linear-gradient(var(--color-dark-purple), var(--color-dark-purple)) padding-box, 
                linear-gradient(45deg, #ec4899, #a855f7) border-box;
}

.ticket-tab {
    padding: var(--spacing-1) var(--spacing-2);
    margin-left: var(--spacing-0-5);
    font-size: var(--text-base-semibold-size);
    font-weight: 600;
    border-radius: 0.75rem;
    cursor: pointer;
    border: none;
    background: none;
    color: rgba(255, 255, 255, 0.7);
}
.ticket-tab:first-child {
    margin-left: 0;
}

.ticket-tab:hover {
    color: white;
    background-color: rgba(255, 255, 255, 0.1);
}

.ticket-tab.active {
    background: linear-gradient(to right, var(--color-primary),  var(--color-secondary));
    color: white;
}

/* Ticket Content */
.ticket-content {
    transition: opacity 0.3s ease;
}

.ticket-content.hidden {
    display: none;
}

/* Table Layout with Flexbox */
.tickets-table {
    display: flex;
    flex-direction: column;
}

.tickets-table-row {
    display: flex;
}

.tickets-table-row.features {
    flex-wrap: nowrap;
}

.tickets-table-row.header {
    flex-wrap: nowrap;
}

.tickets-table-row.price {
    flex-wrap: nowrap;
}

.tickets-table-cell {
    min-height: 60px;
    display: flex;
    align-items: center;
    padding: 1rem;
    flex: 1;
}

.tickets-table-cell.feature-label {
    justify-content: flex-start;
    padding-left: 1rem;
    padding-right: 1rem;
    flex: 1;
}


.tickets-table-row:nth-child(3) .tickets-table-cell:nth-child(n+2) {
    border-radius: var(--spacing-2) var(--spacing-2) 0 0;
}

.tickets-table-row:last-child .tickets-table-cell:nth-child(n+2) {
    border-radius: 0 0 var(--spacing-2) var(--spacing-2);
}

/* Alternância de tons nos itens ímpares via CSS */
.tickets-table-row:nth-child(odd) .tickets-table-cell.feature-label {
    background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.15));
}

.tickets-table-cell.feature-value {
    justify-content: center;
    align-items: center;
    flex: 0 0 18rem;
}

/* Alternância de tons nos itens ímpares via CSS */
.tickets-table-row:nth-child(odd) .tickets-table-cell.feature-value {
    filter: brightness(0.9);
}

.tickets-table-cell.title {
    flex-direction: column;
    justify-content: center;
    padding-right: 1rem;
    flex: 1;
    font-size: var(--text-h4-size);
}

.tickets-table-cell.title h2 {
    font-size: 1.875rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 1rem;
    color: white;
}

@media (min-width: var(--breakpoint-md)) {
    .tickets-table-cell.title h2 {
        font-size: 3rem;
    }
}

.tickets-table-cell.header {
    border-radius: var(--spacing-2);
    padding: var(--spacing-3);
    text-align: center;
    font-weight: 600;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 0 0 18rem;
}
.tickets-table-cell:nth-child(n+3) {
    margin-left: var(--spacing-3);
}





.tickets-table-cell.header h4 {
    font-size: 1.5rem;
    font-weight: bold;
}

.tickets-table-cell.header .subtitle {
    font-weight: 600;
    margin-top: 0.25rem;
    font-size: var(--text-large-semibold-size);
}

.tickets-table-cell.header .batch {
    display: flex;
    justify-content: center;
    margin-top: 0.75rem;
}

.tickets-table-cell.header .batch span {
    border-radius: 0.375rem;
    padding: 0.25rem 0.75rem;
    font-size: var(--text-base-semibold-size);
    background-color: rgba(255, 255, 255, 0.2);
    width: fit-content;
}

.tickets-table-cell.price {
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    padding: var(--spacing-3);
    flex: 0 0 18rem;
    padding-top: var(--spacing-1);
    border-radius: var(--spacing-2);
}

.tickets-table-cell.price .price-display {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: var(--spacing-1);
}

.tickets-table-cell.price .price-prefix {
    font-size: var(--text-base-semibold-size);
    font-weight: 500;
    opacity: 0.8;
    margin: var(--spacing-1) 0 0;
    text-align: center;
}

.tickets-table-cell.price .amount {
    font-size: var(--text-h2-size);
    font-weight: 800;
    letter-spacing: -0.025em;
}

/* Cards Layout */
.tickets-cards {
    max-width: 60rem;
}

.tickets-cards h2 {
    font-size: 1.875rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 1rem;
    color: white;
}

@media (min-width: var(--breakpoint-md)) {
    .tickets-cards h2 {
        font-size: 3rem;
    }
}

.tickets-cards .subtitle {
    font-size: var(--text-h5-size);
    line-height: var(--text-large-semibold-line-height);
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: var(--spacing-4);
}

.tickets-cards-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

.tickets-cards-grid > .ticket-card {
    flex: 1 1 100%;
}

@media (min-width: 640px) {
    .tickets-cards-grid > .ticket-card {
        flex: 1 1 calc(50% - 1rem);
    }
}

@media (min-width: var(--breakpoint-md)) {
    .tickets-cards-grid > .ticket-card {
        flex: 1 1 calc(50% - 1rem);
    }
}

.ticket-card {
    position: relative;
    border-radius: 1.25rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 2rem;
    color: var(--color-on-bg-high);
    background: linear-gradient(135deg, #0b0616 0%, #141226 100%);
}

.ticket-card-header {
    padding: 0;
    text-align: left;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.ticket-card-icon {
    display: inline-flex;
    border-radius: 14px;
    background: transparent;
    margin-bottom: 1.25rem;
}

.ticket-card-icon img {
    width: 40px;
    height: 40px;
}

.ticket-card-title {
    font-family: var(--font-display);
    font-weight: 800;
    letter-spacing: -0.01em;
    font-size: var(--text-h3-size);
}

.ticket-card-subtitle {
    font-size: 1rem;
    font-weight: 600;
    color: rgba(255,255,255,0.85);
}

.ticket-card-batch {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.375rem 0.875rem;
    border-radius: 1rem;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.ticket-card-footer {
    background: transparent;
    padding: 0;
    margin-top: 1.5rem;
}

/* Feature Icons */
.feature-icon {
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.feature-icon-img{ width: 1.25rem; height: 1.25rem; display:inline-block; }



/* Ticket Button Base Styles */
.ticket-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 2rem;
    font-size: var(--text-large-semibold-size);
    font-weight: 600;
    border-radius: 0.375rem;
    text-decoration: none;
    transition: all 0.2s ease-in-out;
    cursor: pointer;
}

/* Responsive adjustments */
@media (max-width: var(--breakpoint-md)) {
    .tickets-table-row {
        flex-direction: column;
    }
    
    .tickets-table-cell.header {
        height: auto;
        min-height: 120px;
        flex: 1;
    }
    
    .tickets-table-cell.price {
        height: auto;
        min-height: 120px;
        flex: 1;
    }
    
    .tickets-table-cell.title {
        display: none;
    }
    
    .tickets-table-cell.feature-label {
        text-align: center;
        justify-content: center;
    }
    
    .tickets-table-cell.feature-value {
        flex: 1;
    }
}



/* Text color utilities */
.text-slate-900 {
    color: #1f2937;
}

.text-black {
    color: #000000;
}

.text-white {
    color: #ffffff;
}

.text-white-70 {
    color: rgba(255, 255, 255, 0.7);
}

.text-white-90 {
    color: rgba(255, 255, 255, 0.9);
}

/* Color Scheme Styles for Tickets */
/* PRIMARY = rosa/roxo no header, conteúdo branco */
.tickets-table-cell.header.color-scheme-primary {
    background: var(--gradient-primary) !important;
    color: #ffffff !important;
}

.tickets-table-cell.price.color-scheme-primary {
    background: linear-gradient(to right, #ffffff, #f3f4f6) !important;
    color: #1f2937 !important;
}

.tickets-table-cell.feature-value.color-scheme-primary {
    background: linear-gradient(to right, #ffffff, #f3f4f6) !important;
    color: #000000 !important;
}



.color-scheme-primary .feature-icon.check {
    color: #000000 !important;
    font-weight: bold !important;
    font-size: 1.2rem !important;
}

.color-scheme-primary .feature-icon.cancel {
    color: #666666 !important;
    font-weight: bold !important;
    font-size: 1.2rem !important;
}

/* SECONDARY = verde/ciano no header e conteúdo */
.tickets-table-cell.header.color-scheme-secondary {
    background: var(--gradient-secondary) !important;
    color: #000000 !important;
}

.tickets-table-cell.price.color-scheme-secondary {
    background: var(--gradient-secondary) !important;
    color: #1f2937 !important;
}

.tickets-table-cell.feature-value.color-scheme-secondary {
    background: var(--gradient-secondary) !important;
    color: #1f2937 !important;
}



.color-scheme-secondary .feature-icon.check {
    color: var(--color-primary) !important;
    font-weight: bold !important;
    font-size: 1.2rem !important;
}

.color-scheme-secondary .feature-icon.cancel {
    color: #9ca3af !important;
    font-weight: bold !important;
    font-size: 1.2rem !important;
}

/* SECONDARY = verde/ciano no header e conteúdo */
.tickets-table-cell.header.color-scheme-secondary {
    background: var(--gradient-secondary) !important;
    color: #000000 !important;
}

.tickets-table-cell.price.color-scheme-secondary {
    background: var(--gradient-secondary) !important;
    color: #1f2937 !important;
}

.tickets-table-cell.feature-value.color-scheme-secondary {
    background: var(--gradient-secondary) !important;
    color: #1f2937 !important;
}



.color-scheme-secondary .feature-icon.check {
    color: var(--color-primary) !important;
    font-weight: bold !important;
    font-size: 1.2rem !important;
}

.color-scheme-secondary .feature-icon.cancel {
    color: #9ca3af !important;
    font-weight: bold !important;
    font-size: 1.2rem !important;
}


.color-scheme-secondary .ticket-card-header {
    background: var(--gradient-secondary) !important;
    color: #ffffff !important;
}

/* Section header */
.tickets-title {
    font-size: 3rem;
    font-weight: 800;
    line-height: 1.1;
    color: #ffffff;
    margin-bottom: var(--spacing-4);
}

@media (max-width: var(--breakpoint-md)) {
    .tickets-title {
        font-size: 2rem;
    }
}

/* Dotted separator under pricing headers to match reference */
.tickets-table-row.header {
    position: relative;
}

/* Ajuste dinâmico de margem quando a segunda aba estiver ativa */
.tickets-wrapper[data-active-index="1"] .tickets-left {
    margin-bottom: 0;
}

/* --- Tickets Cards: visual refinements to match mock --- */
.tickets-cards .subtitle { max-width: 56rem; }


/* Color schemes for cards (background tint + pill color) */
.ticket-card.color-scheme-primary {
  background:
    linear-gradient(135deg, rgba(238, 26, 152, 0.10), rgba(101, 77, 160, 0.10)),
    #0B0616;
}
.ticket-card.color-scheme-secondary {
  background:
    linear-gradient(135deg, rgba(145, 203, 165, 0.10), rgba(66, 190, 244, 0.10)),
    #0B0616;
}

.color-scheme-primary .ticket-card-batch { background: rgba(121, 86, 176, 0.25); border-color: rgba(165, 132, 220, 0.35); }
.color-scheme-secondary .ticket-card-batch { background: rgba(145,203,165,0.22); border-color: rgba(145,203,165,0.45); color: #0e1b2b; }

/* Buttons on cards */
.color-scheme-primary .ticket-card .btn-primary-medium { border: 0; }
.color-scheme-secondary .ticket-card .btn-primary-over-secondary {
  background: linear-gradient(90deg, rgba(92,213,231,1) 0%, rgba(64,173,247,1) 100%);
  color: #0b1424;
  border: none;
}
.color-scheme-secondary .ticket-card .btn-primary-over-secondary:hover { filter: brightness(1.05); }

/* Make sure internal header doesn't paint gradient anymore; card handles bg */
.color-scheme-primary .ticket-card-header,
.color-scheme-secondary .ticket-card-header {
  background: transparent !important;
}

/* Icon color accents */
.color-scheme-primary .ticket-card-icon { border-color: rgba(238, 26, 152, 0.4); }
.color-scheme-secondary .ticket-card-icon { border-color: rgba(66,190,244,0.45); }



/* Card background per schema: transparent 10% gradient over solid #0B0616 */
.ticket-card.color-scheme-primary {
  background:
    linear-gradient(135deg, rgba(238, 26, 152, 0.10), rgba(101, 77, 160, 0.10)),
    #0B0616 !important;
}
.ticket-card.color-scheme-secondary {
  background:
    linear-gradient(135deg, rgba(145, 203, 165, 0.10), rgba(66, 190, 244, 0.10)),
    #0B0616 !important;
}

/* Discount pill per schema */
.color-scheme-primary .ticket-card-batch {
  background: var(--color-secondary);
  color: #fff;
  border: none;
}
.color-scheme-secondary .ticket-card-batch {
  background: var(--color-accent-secondary);
  color: var(--color-content-high);
  border: none;
}

/* ======================
   KPIs Section (image + 6 cards)
   ====================== */
.kpi-section { background-color: var(--color-dark-purple); color: #fff; }
.kpi-section .custom-container { position: static; }

.kpi-layout { position: relative; display: flex; align-items: stretch; gap: 1rem; border-radius: var(--spacing-1);overflow: hidden;}
.kpi-layout::before { content: ''; position: absolute; inset: 0; background: rgba(66,190,244,0.05); pointer-events: none; z-index: 0; }
.kpi-layout > * { position: relative; z-index: 1; }
@media (min-width: var(--breakpoint-md)) { .kpi-layout { gap: 1.25rem; } }
@media (max-width: var(--breakpoint-md)) { .kpi-layout { flex-direction: column; } }

.kpi-left-hero {
  position: relative;
  border-radius: 0.75rem;
  overflow: hidden;
  background-color: transparent;
  flex: 0 1 100%;
  isolation: isolate;
  align-content: flex-end;
  padding: var(--spacing-5);
}

.kpi-left-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: var(--kpi-bg, url('../img/pictures/about/about-1.jpg'));
  background-size: cover;
  background-position: center;
  z-index: 0;
  /* Fade the image to transparent so the kpi-layout accent shows through */
  -webkit-mask-image: linear-gradient(to right,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,0.85) 45%,
    rgba(0,0,0,0.6) 60%,
    rgba(0,0,0,0.3) 80%,
    rgba(0,0,0,0) 100%
  );
  mask-image: linear-gradient(to right,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,0.85) 45%,
    rgba(0,0,0,0.6) 60%,
    rgba(0,0,0,0.3) 80%,
    rgba(0,0,0,0) 100%
  );
}

@media (min-width: var(--breakpoint-md)) {
  .kpi-left-hero {
    min-height: 300px;
    width: 80%;
  }
}

.kpi-left-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(0, 0, 0, 1),
    rgba(11, 6, 22, 0.45) 55%,
    rgba(11, 6, 22, 0.15) 100%
  );
  z-index: 1;
}

.kpi-left-hero-title {
  position: relative;
  font-weight: 700;
  line-height: 1.08;
  font-size: var(--text-h3-size);
  z-index: 2;
}

.kpi-right {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    flex: 1 1 100%;
    padding: var(--spacing-2) 0;
}

.kpi-right {
    gap: 0.75rem;
}

.kpi-card {
    background: var(--color-background);
    border-radius: 0.75rem;
    padding: 1rem;
    flex: 0 0 calc(33.333% - 0.75rem);
    max-width: calc(33.333% - 0.75rem);
}

.kpi-title {
    display: inline-block;
    font-size: 2.25rem;
    font-weight: 800;
    background: linear-gradient(to right, var(--color-primary), var(--color-secondary));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.kpi-subtitle {
    margin-top: 0.25rem;
    font-size: var(--text-base-semibold-size);
    font-weight: 600;
    color: #ffffff;
}

.kpi-description {
    margin-top: 0.25rem;
    font-size: var(--text-base-regular-size);
    font-weight: 400;
    color: var(--color-on-bg-medium);
}

/* ======================
   Activities Section - Diagonal Gradient Overlay
   ====================== */

/* Diagonal gradient overlay for activity cards */
.activity-card .activity-card-diagonal-gradient {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    opacity: 0.2;
    z-index: 2;
    pointer-events: none;
}

/* Dark gradient overlay for text readability */
.activity-card .activity-card-dark-gradient {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to top, #0b0616, rgba(11, 6, 22, 0.8), rgba(11, 6, 22, 0));
    z-index: 3;
    pointer-events: none;
    opacity: 0.6;
}

/* Activity card container */
.activity-card {
    position: relative;
    border-radius: 0.5rem;
    overflow: hidden;
}

/* Activity card image */
.activity-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
    z-index: 1;
}

/* Activity card title container */
.activity-card .activity-card-title {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: var(--spacing-4);
    z-index: 4;
}

/* Activity card title text */
.activity-card .activity-card-title h3 {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    color: white;
}

@media (min-width: var(--breakpoint-md)) {
    .activity-card .activity-card-title h3 {
        font-size: 1.125rem;
    }
}

/* Venue (Frei Caneca) section refinements */
.venue-section .venue-image-card {
  position: relative;
  border: 2px solid transparent;
  border-radius: 0.75rem; /* ~rounded-xl */
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(238, 26, 152, 0.18);
  background: var(--color-dark-purple);
  max-width: var(--max-width-venue-image);
  aspect-ratio: 1 / 1; /* Mais quadrado */
  background: linear-gradient(var(--color-dark-purple), var(--color-dark-purple)) padding-box,
              linear-gradient(to top right, var(--color-primary), var(--color-secondary)) border-box;
}
.venue-section .venue-image-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.venue-section p { color: var(--color-on-bg-medium); }
.venue-section strong { color: var(--color-primary); }

/* Venue section list styles - ensure bullets appear */
.venue-section ul {
  list-style: disc !important;
  margin: 0 0 1.5em 1.5em !important;
  padding: 0 !important;
}

.venue-section ul li {
  margin-bottom: 0.5rem !important;
  line-height: 1.6 !important;
}

.venue-section ul li:last-child {
  margin-bottom: 0 !important;
}

/* Sponsors Section - MUITO ESPECÍFICO apenas para a seção de patrocinadores */
#sponsors-tabs-container { display: flex; flex-direction: column; gap: 1rem; }

/* Hide native radios, keep accessible via labels styled as .ticket-tab */
#sponsors-tabs-container .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* Panels container - MUITO ESPECÍFICO */
#sponsors-panels-container { position: relative; }
#sponsors-panels-container .panel { display: none; }

/* Active tab labels - MUITO ESPECÍFICO */
#tab-sponsors:checked ~ #sponsors-tab-nav label[for="tab-sponsors"],
#tab-become:checked ~ #sponsors-tab-nav label[for="tab-become"] {
    color: white;
    background: linear-gradient(to right, var(--color-primary), var(--color-secondary));
}

/* When become is selected - MUITO ESPECÍFICO */
#tab-become:checked ~ #sponsors-panels-container .sponsors-list-panel { display: none; }
#tab-become:checked ~ #sponsors-panels-container .become-panel { display: block; }

#tab-sponsors:checked ~ #sponsors-panels-container .sponsors-list-panel { display: block; }
#tab-sponsors:checked ~ #sponsors-panels-container .become-panel { display: none; }



/* Sponsors blocks */
.bg-gray-50 {
    background-color: #f4f4f4 !important;
}
.sponsors-block { 
    background: #fff; 
    border-radius: var(--spacing-2); 
    padding: var(--spacing-3); 
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    text-align: center;
}
.sponsors-block.primary {
    border: 2px solid var(--color-primary); 
}
.sponsors-block + .sponsors-block { margin-top: 1rem; }

/* ===================================
   SPONSORS LOGOS LIST
   =================================== */
.sponsors-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    align-items: center;
}

.sponsor-logo-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    padding: 1rem;
    box-sizing: border-box;
}

.sponsor-logo-card img {
    width: auto;
    height: auto;
    filter: grayscale(0%);
    object-fit: contain;
}

/* Fallback para imagens que não carregam - usando CSS puro */
.sponsor-logo-card:has(img[src*="invalid"]) img,
.sponsor-logo-card:has(img[src*="error"]) img,
.sponsor-logo-card:has(img[src*="placeholder"]) img {
    padding: 0.5rem 0.75rem;
    background: #f3f4f6;
}

/* Fallback mais robusto para navegadores que não suportam :has() */
.sponsor-logo-card img:not([src]),
.sponsor-logo-card img[src=""],
.sponsor-logo-card img[src="#"] {
    background: #f3f4f6;
}

/* Fallback para imagens que falharam ao carregar */
.sponsor-logo-card img[onerror] {
    background: #f3f4f6;
}

/* Fallback para imagens com dimensões inválidas ou que não carregaram */
.sponsor-logo-card img[width="0"],
.sponsor-logo-card img[height="0"] {
    background: #f3f4f6;
}

/* Fallback para imagens que podem ter falhado silenciosamente */
.sponsor-logo-card:not(:has(img[src*="data:"])) img:not([src*="http"]):not([src*="//"]) {
    background: #f3f4f6;
}

/* ===================================
   BECOME SPONSOR PANEL LAYOUT
   =================================== */
.become-hero {
    background: #fff;
    border-radius: 1rem;
    padding: 1rem;
    border: 1px solid rgba(236, 72, 153, 0.2);
}

.become-tabs-header {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.become-content {
    display: flex;
    gap: 1.25rem;
    align-items: stretch;
}

.become-media {
    flex: 1 1 48%;
    border-radius: 0.75rem;
    overflow: hidden;
    background: #f3f4f6;
}

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

.become-accordions {
    flex: 1 1 52%;
}

/* ===================================
   RESPONSIVE BREAKPOINTS
   =================================== */
@media (max-width: var(--breakpoint-md)) {
    .become-tabs-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
    
    .become-content {
        flex-direction: column;
    }
    
    .become-media,
    .become-accordions {
        flex-basis: 100%;
    }
}

/* Accordions: mirror FAQ aesthetics */
.sponsor-accordion { border-bottom: 1px solid var(--color-content-low); background: transparent; }
.sponsor-accordion-summary { position: relative; padding: 0.875rem 0.5rem 0.875rem 2.5rem; cursor: pointer; list-style: none; outline: none; }
.sponsor-accordion-summary::-webkit-details-marker { display: none; }
.sponsor-accordion-icon { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; background-image: url('../img/icons/caret-secondary.svg'); background-size: contain; background-repeat: no-repeat; background-position: center; transition: transform 0.2s ease-out; }

.sponsor-accordion-content { padding: 0 0.5rem 1rem 2.5rem; color: #4B5563; }

/* Align with FAQ text colors on dark sections fallback */
.bg-background .sponsor-accordion-content { color: rgba(255,255,255,0.75); }

/* Variação para fundos cinza claro - MUITO ESPECÍFICO */
#sponsors-tabs-container #sponsors-tab-nav {
  background: #f8fafc;
  border: 1px solid transparent;
  background: linear-gradient(#f4f4f4, #f4f4f4) padding-box, 
              linear-gradient(45deg, #ec4899, #a855f7) border-box;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

#sponsors-tabs-container #sponsors-tab-nav .ticket-tab {
  color: #374151;
}

#sponsors-tabs-container #sponsors-tab-nav .ticket-tab:hover {
    background-color: #f1f5f9;
}

#sponsors-tabs-container #sponsors-tab-nav .ticket-tab.active,
#tab-sponsors:checked ~ #sponsors-tab-nav label[for="tab-sponsors"],
#tab-become:checked ~ #sponsors-tab-nav label[for="tab-become"] {
  color: #ffffff;
  background: linear-gradient(to right, var(--color-primary), var(--color-secondary));
}

/* ... existing code ... */
.btn-primary-medium.rounded-full:active {
    transform: translateY(1px);
}

.btn-primary-medium.rounded-full:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}


/* --- "Become a Sponsor" Section --- */
.become-panel {
	padding-top: var(--spacing-4);
	padding-bottom: var(--spacing-12);
}

.become-hero-new {
	max-width: var(--container-xl);
	margin: 0 auto;
	padding: 0 var(--spacing-3);
}

.become-hero-new .text-h2 {
	font-size: 48px;
	line-height: 1.2;
	font-weight: 600;
	color: var(--color-content-high);
}

.become-hero-new .text-on-bg-medium {
    color: var(--color-content-medium);
}

.become-content-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin: var(--spacing-6) auto 0;
}

.become-media {
	flex: 0 1 calc(58.333% - 12px);
	min-width: 340px;
    max-height: var(--max-width-venue-image);
}

.become-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 24px;
	box-shadow: 0 12px 36px rgba(0,0,0,.1);
}

.become-accordions {
	flex: 0 1 calc(41.667% - 12px);
	min-width: 300px;
}

.sponsor-accordion {
	border-bottom: 1px solid var(--color-content-low);
}
.sponsor-accordion:last-of-type {
	border-bottom: none;
}

.sponsor-accordion-summary {
	position: relative;
	padding: 1.25rem 0.5rem 1.25rem 2.5rem;
	cursor: pointer;
	list-style: none;
	outline: none;
	font-size: var(--text-base-semibold-size);
	font-weight: 600;
}
.sponsor-accordion-summary:focus-visible {
	outline: 2px solid var(--color-primary);
    outline-offset: 2px;
	border-radius: 4px;
}

.sponsor-accordion-summary::-webkit-details-marker {
	display: none;
}

.sponsor-accordion-icon {
	position: absolute;
	left: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	background-image: url('../img/icons/caret-secondary.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	transition: transform 0.2s ease-out;
}

.sponsor-accordion[open] > .sponsor-accordion-summary .sponsor-accordion-icon {
	transform: translateY(-50%) rotate(90deg);
	background-image: url('../img/icons/caret-primary.svg');
}

.sponsor-accordion-title {
	font-weight: bold;
	color: var(--color-content-high);
    font-size: var(--text-h5-size);
}
.sponsor-accordion[open] .sponsor-accordion-title {
	color: var(--color-primary);
}

.sponsor-accordion-content {
	padding: 0 0.5rem 1.5rem 2.5rem;
	color: var(--color-content-medium);
	font-size: var(--text-base-regular-size);
	line-height: 1.6;
}

.sponsor-accordion-content ul {
	list-style: none;
	padding: 0;
	margin: var(--spacing-2) 0 0 0;
	display: flex;
	flex-direction: column;
	gap: var(--spacing-1);
}

.sponsor-accordion-content ul li {
	position: relative;
	padding-left: 1.25rem;
}

.sponsor-accordion-content ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.6em;
	transform: translateY(-50%);
	width: 6px;
	height: 6px;
	background-color: var(--color-content-low);
	border-radius: 50%;
}


@media (max-width: var(--breakpoint-lg)) {
	.become-content-grid {
		gap: var(--spacing-6);
	}
	.become-media,
	.become-accordions {
		flex: 1 1 100%;
	}
}

@media (max-width: var(--breakpoint-md)) {
	.become-hero-new .text-h2 {
		font-size: 36px;
	}
}

/* Navbar active state styles */
#nav-links a.active {
    color: var(--color-pink-accent, #ec4899);
    position: relative;
}

/* Navigation styles */
.nav-link {
    color: rgba(255, 255, 255, 0.7);
    transition: all 0.3s ease;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    text-decoration: none;
    font-weight: 500;
}

.nav-link:hover {
    color: var(--color-primary);
    background-color: rgba(238, 26, 152, 0.05);
}

.nav-link.active {
    color: var(--color-primary);
    background-color: rgba(238, 26, 152, 0.1);
    font-weight: 600;
}

/* Mobile navigation styles */
.mobile-nav-link {
    color: white;
    transition: all 0.3s ease;
    padding: var(--spacing-2) 1rem;
    border-radius: 0.5rem;
    text-decoration: none;
    font-weight: 500;
    display: block;
}

.mobile-nav-link:hover {
    color: var(--color-pink-accent);
    background-color: rgba(238, 26, 152, 0.05);
}

.mobile-nav-link.active {
    color: var(--color-primary);
    background-color: rgba(238, 26, 152, 0.1);
    font-weight: 600;
}

/* ======================
   Calendar (Programação)
   ====================== */
.calendar-wrapper {
  overflow-x: auto;
  border: 1px solid rgba(255,255,255,0.10);
  background: transparent;
  position: relative; /* Para posicionamento dos elementos sticky */
  -webkit-overflow-scrolling: touch; /* Scroll suave no iOS */
}

.calendar-header {
  display: grid;
  grid-template-columns: var(--calendar-columns);
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--color-dark-purple);
  border-bottom: 1px solid rgba(255,255,255,0.15);
}

.calendar-room-header {
  padding: 1rem;
  font-size: 1.125rem;
  font-weight: 600;
  background: transparent;
  border-right: 1px solid rgba(255,255,255,0.10);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.calendar-room-header .room-name {
  font-size: 1.125rem;
  font-weight: 600;
}

.calendar-room-header .room-tracks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.calendar-room-header .track-pill {
  font-size: 0.75rem;
  font-weight: 500;
  padding: 0.25rem 0.5rem;
  background: rgba(255,255,255,0.15);
  border-radius: 0.25rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* Linha de trilhas */
.calendar-tracks-row {
  display: grid;
  grid-template-columns: var(--calendar-columns);
  border-bottom: 1px solid rgba(255,255,255,0.10);
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 19;
  background: var(--color-dark-purple);
}

.calendar-tracks-row .tracks-time-cell {
  border-right: 1px solid rgba(255,255,255,0.10);
  background: rgba(11,6,22,0.95);
  backdrop-filter: blur(2px);
}

.calendar-track-cell {
  padding: 0.5rem;
  border-right: 1px solid rgba(255,255,255,0.10);
  display: flex;
  align-items: center;
  justify-content: center;
  /* Garantir que preencha toda a célula */
  height: 100%;
  min-width: 0; /* Permitir que o conteúdo encolha */
}

.calendar-track-cell:last-child {
  border-right: none;
}

.track-pill-header {
  font-size: 0.875rem;
  font-weight: 600;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
  max-width: 100%;
  padding: 0 0.25rem; /* Padding mínimo para não colar nas bordas */
}

/* Remove border from last room header to avoid double border on the right edge */
.calendar-room-header:last-child {
  border-right: none;
}

.calendar-grid {
  display: grid;
  grid-template-columns: var(--calendar-columns);
  grid-auto-rows: var(--slot-height, 56px);
  position: relative;
}

.calendar-time-cell {
  position: sticky;
  left: 0;
  z-index: 10;
  padding: 0.75rem;
  border-top: 1px solid rgba(255,255,255,0.10);
  border-right: 1px solid rgba(255,255,255,0.10);
  text-align: right;
  color: rgba(255,255,255,0.6);
  background: rgba(11,6,22,0.95);
  backdrop-filter: blur(2px);
  grid-column: 1;
  /* Garantir que o sticky funcione corretamente */
  position: -webkit-sticky;
  position: sticky;
}

/* Esconder bordas quando não há eventos ou não é múltiplo de 60min */
.calendar-time-cell--no-border {
  border-top: none;
}

.calendar-time-cell .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.calendar-cell { 
  border-top: 1px solid rgba(255,255,255,0.10); 
  border-right: 1px solid rgba(255,255,255,0.10);
}

/* Esconder bordas quando não há eventos ou não é múltiplo de 60min */
.calendar-cell--no-border {
  border-top: none;
}

/* Remove border from last column to avoid double border on the right edge */
.calendar-cell:last-child {
  border-right: none;
}

/* Event shells */
.calendar-event, .calendar-pill { display: flex; flex-direction: column; }
.calendar-event { position: relative; z-index: 2; margin: 0.5rem; border-radius: 0.5rem; }
.calendar-event-inner { 
    flex: 1 1 auto; 
    display: flex; 
    flex-direction: column; 
    justify-content: space-between; 
    border-radius: 0.5rem; 
    padding: var(--spacing-2);
    padding-top: var(--spacing-1); 
    padding-bottom: var(--spacing-1); 
    border: none; 
    background: var(--color-background); 
    cursor: pointer;
}

.calendar-event-inner:hover::before{
    opacity: 0.25 !important;
}

/* Visual variants */
/* General event: gradient border feeling */
.event--general { border: 1px solid transparent; border-radius: 0.5rem; background: linear-gradient(var(--color-background), var(--color-background)) padding-box, linear-gradient(135deg, var(--color-primary), var(--color-secondary)) border-box; }
.event--general .calendar-event-inner { background: transparent; }

/* Talk event: subtle room tint overlay */
.event--talk { background: none; }
.event--talk .calendar-event-inner { position: relative; box-shadow: none; }
.event--talk .calendar-event-inner::before { content: ''; position: absolute; inset: 0; border-radius: inherit; background: var(--room-tint, transparent); opacity: 0.14; pointer-events: none; }

.calendar-event-title { font-weight: 600; font-size: 0.95rem; }
.calendar-event-footer { display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem; margin-top: 0.75rem; }

.calendar-event-speaker { display: flex; align-items: center; gap: 0.375rem; font-size: 0.8rem; color: rgba(255,255,255,0.85); min-width: 0; flex: 1; }
.calendar-event-speaker > div { min-width: 0; flex: 1; overflow: hidden; }
.calendar-event-speaker .avatar-container { flex-grow: 0; min-width: var(--spacing-5); }
#eventModalSpeakers .avatar-container { flex-grow: 0 !important; min-width: var(--spacing-6) !important; }

.calendar-event-speaker .name { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
.calendar-event-speaker .role { color: rgba(255,255,255,0.6); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
.calendar-event-speaker .avatar { display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 9999px; background: rgba(255,255,255,0.10); border: none; flex-shrink: 0; }

/* Modal speakers - garantir ellipsis também */
#eventModalSpeakers .flex > div { min-width: 0; flex: 1; }
#eventModalSpeakers .text-sm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.calendar-event-action { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 9999px; border: none; background: rgba(255,255,255,0.10); }

.calendar-event-multi { display: flex; flex-grow:1; align-items: center; gap: 0.4rem; font-size: 0.8rem; color: rgba(255,255,255,0.85); }
.calendar-event-multi .badge-count { display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 9999px; background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.15); }

/* Track pill row - Desktop: sempre uma linha */
.calendar-pill { padding: 0; margin: 0; z-index: 2; align-self: stretch; min-width: 0; }
.calendar-pill .pill-inner { 
  display: flex; 
  align-items: center; 
  align-content: center; 
  justify-content: center;
  width: 100%; 
  height: 100%; 
  font-weight: 600; 
  font-size: 0.875rem; 
  padding: 0 0.5rem; 
  border-radius: 0; 
  background: var(--room-tint);
  /* Desktop: manter em uma linha com ellipsis */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  max-width: 100%;
}

/* Garantir que track-pill-header também fique em uma linha no desktop */
@media (min-width: 769px) {
  .track-pill-header {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  
  .calendar-pill .pill-inner {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* Quando o track-pill precisa ficar acima da primeira linha, aplicamos um deslocamento visual */
.calendar-pill--top {
  position: relative;
  z-index: 3; /* acima dos eventos */
  margin-top: -22px; /* metade da altura padrão para aparecer acima da primeira linha */
}

/* Room color tokens → header accents */
.room-color-fuchsia { --room-accent: #EE1A98; --room-tint: rgba(238,26,152,0.50); }
.room-color-sky { --room-accent: #42BEF4; --room-tint: rgba(66,190,244,0.20); }
.room-color-violet { --room-accent: #654DA0; --room-tint: rgba(101,77,160,0.20); }

/* Room tints for cards and pills (explicit overrides if needed) */
.room-tint-fuchsia { --room-tint: rgba(238,26,152,0.50); }
.room-tint-sky { --room-tint: rgba(66,190,244,0.20); }
.room-tint-violet { --room-tint: rgba(101,77,160,0.20); }

/* Day tabs */
.calendar-tab { padding: 0.75rem 1rem; border-radius: 0.75rem; border: 1px solid rgba(255,255,255,0.15); background: transparent; text-align: left; }
.calendar-tab-badge { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 2rem; margin-right: 0.75rem; border-radius: 0.375rem; background: linear-gradient(270deg, #e92d8b, #6e4193, #e92d8b, #6e4193); background-size: 800% 800%; animation: gradientAnimation 60s ease infinite; font-size: 0.875rem; font-weight: 700; }
.calendar-tab-date { color: rgba(255,255,255,0.85); }
.calendar-tab.is-active { border-color: rgba(255,255,255,0.25); background: rgba(255,255,255,0.05); }

/* ========================================
   EXHIBITION SECTION STYLES
   ======================================== */

/* Additional thematic colors for exhibition areas */
:root {
    /* Exhibition area colors - thematic by subject */
    --color-lounge: var(--color-pink-accent);           /* Pink for networking/lounge */
    --color-business: #F97316;                          /* Orange for business/commercial */
    --color-vip: #EAB308;                              /* Yellow/Gold for VIP/premium */
    --color-auditorium: var(--color-accent-primary);   /* Blue for learning/auditoriums */
    --color-technology: var(--color-accent-secondary);  /* Green for technology/innovation */
}

/* Exhibition section layout */
.exhibition-section {
    background-color: var(--color-dark-purple);
    color: white;
    padding: var(--spacing-10) 0;
}

.exhibition-container {
    max-width: var(--container-desktop);
    margin: 0 auto;
    padding-left: var(--padding-horizontal-mobile);
    padding-right: var(--padding-horizontal-mobile);
}

@media (min-width: var(--breakpoint-tablet)) {
    .exhibition-container {
        padding-left: var(--padding-horizontal-desktop);
        padding-right: var(--padding-horizontal-desktop);
    }
}

@media (min-width: var(--breakpoint-desktop)) {
    .exhibition-container {
        padding-left: 0;
        padding-right: 0;
    }
}

.exhibition-header {
    text-align: center;
    margin-bottom: var(--spacing-6);
    text-align: left;
}

.exhibition-header h2 {
    margin-bottom: 0;
}

.exhibition-grid {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-12);
    align-items: stretch;
}

@media (min-width: 768px) {
    .exhibition-grid {
        flex-direction: row;
        gap: var(--spacing-16);
        align-items: flex-start;
    }
}

/* Exhibition content */
.exhibition-content {
    flex: 1;
}

@media (min-width: 768px) {
    .exhibition-content {
        flex: 0 0 40%; /* 40% width for content */
    }
}



.exhibition-description {
    font-size: 1.125rem;
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: var(--spacing-8);
    line-height: 1.6;
}

/* Exhibition areas list */
.exhibition-areas {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.exhibition-area {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-4);
    padding: var(--spacing-2);
    border-radius: 0.5rem;
    border: 1px solid var(--area-accent, rgba(255, 255, 255, 0.1));
    transition: none;
}

.exhibition-area-indicator {
    width: var(--spacing-2);
    height: var(--spacing-2);
    border-radius: var(--spacing-0-5); /* Square with slight rounding */
    flex-shrink: 0;
    margin-top: var(--spacing-0-5);
}

.exhibition-area-content {
    flex: 1;
}

.exhibition-area-title {
    font-size: var(--text-base-regular-size); /* h5 equivalent */
    font-weight: 600;
    color: white;
    margin-bottom: var(--spacing-0-5);
    line-height: 1.5;
}

.exhibition-area-description {
    color: rgba(255, 255, 255, 0.7);
    font-size: var(--text-base-regular-size); /* text-base */
    font-weight: 400; /* regular */
    margin-bottom: var(--spacing-1);
    line-height: 1.5;
}

.exhibition-area-features {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-0-5);
}

.exhibition-area-feature {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    font-size: var(--text-base-regular-size); /* text-base */
    font-weight: 600; /* semibold */
    color: rgba(255, 255, 255, 0.8);
}

.exhibition-feature-icon {
    width: var(--spacing-2);
    height: var(--spacing-2);
    border: 1px solid var(--area-accent, rgba(255, 255, 255, 0.4));
    border-radius: var(--spacing-0-5);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-small-regular-size);
    font-weight: 600;
    color: white;
    background: rgba(var(--area-accent-rgb, 255, 255, 255), 0.1);
}

/* Thematic colors for different areas - supports both solid colors and gradients */
.exhibition-area--lounge .exhibition-area-indicator {
    background: var(--color-lounge);
}

.exhibition-area--lounge {
    border-color: var(--color-lounge);
}

.exhibition-area--lounge .exhibition-feature-icon {
    border-color: var(--color-lounge);
    color: var(--color-lounge);
}

.exhibition-area--business .exhibition-area-indicator {
    background: var(--color-business);
}

.exhibition-area--business {
    border-color: var(--color-business);
}

.exhibition-area--business .exhibition-feature-icon {
    border-color: var(--color-business);
    color: var(--color-business);
}

.exhibition-area--vip .exhibition-area-indicator {
    background: var(--color-vip);
}

.exhibition-area--vip {
    border-color: var(--color-vip);
}

.exhibition-area--vip .exhibition-feature-icon {
    border-color: var(--color-vip);
    color: var(--color-vip);
}

.exhibition-area--auditorium .exhibition-area-indicator {
    background: var(--color-auditorium);
}

.exhibition-area--auditorium {
    border-color: var(--color-auditorium);
}

.exhibition-area--auditorium .exhibition-feature-icon {
    border-color: var(--color-auditorium);
    color: var(--color-auditorium);
}

.exhibition-area--technology .exhibition-area-indicator {
    background: var(--color-technology);
}

.exhibition-area--technology {
    border-color: var(--color-technology);
}

.exhibition-area--technology .exhibition-feature-icon {
    border-color: var(--color-technology);
    color: var(--color-technology);
}

/* Gradient theme support with proper border handling */
.exhibition-area--gradient-primary .exhibition-area-indicator {
    background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
}

.exhibition-area--gradient-primary {
    position: relative;
    background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
    border-radius: 0.5rem;
    border: none;
    padding: calc(var(--spacing-2) + 2px);
}

.exhibition-area--gradient-primary::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    right: 2px;
    bottom: 2px;
    /* background: rgba(11, 6, 22, 0.95); */
    background-color: var(--color-background);
    border-radius: calc(0.5rem - 2px);
    z-index: 0;
    pointer-events: none;
}

.exhibition-area--gradient-primary .exhibition-area-indicator,
.exhibition-area--gradient-primary .exhibition-area-content {
    position: relative;
    z-index: 1;
}

.exhibition-area--gradient-primary .exhibition-feature-icon {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.exhibition-area--gradient-accent .exhibition-area-indicator {
    background: linear-gradient(135deg, var(--color-accent-primary), var(--color-accent-secondary));
}

.exhibition-area--gradient-accent {
    position: relative;
    background: linear-gradient(135deg, var(--color-accent-primary), var(--color-accent-secondary));
    border-radius: 0.5rem;
    border: none;
    padding: calc(var(--spacing-2) + 2px);
}

.exhibition-area--gradient-accent::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    right: 2px;
    bottom: 2px;
    /* background: rgba(11, 6, 22, 0.95); */
    background: var(--color-background);
    border-radius: calc(0.5rem - 2px);
    z-index: 0;
    pointer-events: none;
}

.exhibition-area--gradient-accent .exhibition-area-indicator,
.exhibition-area--gradient-accent .exhibition-area-content {
    position: relative;
    z-index: 1;
}

.exhibition-area--gradient-accent .exhibition-feature-icon {
    border-color: var(--color-accent-primary);
    color: var(--color-accent-primary);
}

/* Exhibition map */
.exhibition-map {
    position: relative;
    flex: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}


.exhibition-map-container {
    position: relative;
    border-radius: 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

.exhibition-map-illustration {
    width: 100%;
    height: auto;
    max-width: none; /* Remove max-width to allow stretching */
}

.exhibition-venue-info {
    margin-top: var(--spacing-6);
    text-align: center;
}

.exhibition-venue-name {
    font-size: 1.125rem;
    font-weight: 600;
    color: white;
    margin-bottom: 0.5rem;
}

.exhibition-venue-location {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

.exhibition-map-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--color-pink-accent);
    font-size: 0.875rem;
    text-decoration: none;
    transition: color 0.3s ease;
}

.exhibition-map-link:hover {
    color: white;
}

.exhibition-map-link-icon {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
}

/* ========================================
   ABOUT PAGE STYLES
   ======================================== */

/* About content section */
.about-text-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    color: var(--color-on-bg-medium);
    font-size: var(--text-base-regular-size);
    line-height: var(--text-base-regular-line-height);
}

@media (min-width: var(--breakpoint-md)) {
    .about-text-content {
        font-size: 1rem;
    }
}

.about-paragraph {
    margin: 0;
}

.about-cta-button {
    display: inline-block;
    margin-top: 1.5rem;
    padding: 0.75rem 1.5rem;
    background: linear-gradient(to right, var(--color-primary), var(--color-secondary));
    color: white;
    text-decoration: none;
    border-radius: 0.375rem;
    font-weight: 600;
    transition: filter 0.3s ease;
    align-self: flex-start;
}

.about-cta-button:hover {
    filter: brightness(1.1);
}

/* Removido: about-images-grid e about-grid-image não são mais necessários
   pois agora usamos o mosaico padrão do tema */

/* Previous Editions Styles */
.previous-editions-section {
    padding: 2rem 0;
}

@media (min-width: var(--breakpoint-md)) {
    .previous-editions-section {
        padding: 3rem 0;
    }
}

.previous-editions-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: white;
    margin-bottom: 2rem;
}

@media (min-width: var(--breakpoint-md)) {
    .previous-editions-title {
        font-size: 2.25rem;
    }
}

.previous-editions-container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 64rem;
}

.previous-edition-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.previous-edition-summary {
    position: relative;
    padding: 1rem 0.5rem 1rem 2.5rem;
    cursor: pointer;
    list-style: none;
    color: rgba(255, 255, 255, 0.9);
    transition: color 0.3s ease;
    outline: none;
}

.previous-edition-summary::-webkit-details-marker {
    display: none;
}

.previous-edition-summary:hover {
    color: white;
}

.previous-edition-icon {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 9999px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: rgba(255, 255, 255, 0.7);
    transition: transform 0.2s ease;
}

.previous-edition-item[open] .previous-edition-icon {
    transform: translateY(-50%) rotate(90deg);
}

.previous-edition-content {
    padding: 0 0.5rem 1rem 2.5rem;
    color: rgba(255, 255, 255, 0.75);
}

.previous-edition-description {
    margin: 0 0 1.5rem 0;
    line-height: 1.6;
}

.previous-edition-anais {
    margin-bottom: 2rem;
}

.gallery-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 1.5rem;
}

@media (min-width: var(--breakpoint-md)) {
    .gallery-title {
        font-size: 2.25rem;
        margin-bottom: 1.5rem;
    }
}

.gallery-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.gallery-image {
    flex: 0 0 calc(25% - 0.75rem);
    max-width: calc(25% - 0.75rem);
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.gallery-image:hover {
    opacity: 0.8;
}

/* Modal styles */
.gallery-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(5px);
}

.gallery-modal.show {
    display: flex;
    align-items: center;
    justify-content: center;
}

.gallery-modal-content {
    max-width: 90%;
    max-height: 90%;
    position: relative;
}

.gallery-modal-image {
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3);
}

.gallery-modal-close {
    position: absolute;
    top: -40px;
    right: 0;
    color: white;
    font-size: 2rem;
    font-weight: bold;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background-color 0.3s ease;
}

.gallery-modal-close:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

/* ========================================
   CONTACT INPUT STYLES
   ======================================== */

/* Contact input group - container for label + input */
.contact-input-group {
    position: relative;
    background: var(--color-background);
    border: 1px solid var(--color-content-high);
    border-radius: 8px;
    padding: var(--spacing-2);
    transition: all 0.3s ease;
    margin-bottom: var(--spacing-2);
    cursor: text;
}

.contact-input-group:focus-within {
    border-color: var(--color-primary);
}

.contact-input-group:hover {
    cursor: text;
}

/* Contact input label */
.contact-input-label {
    display: block;
    font-size: var(--text-base-semibold-size);
    line-height: var(--text-base-semibold-line-height);
    font-weight: 600;
    color: var(--color-on-bg-high);
    margin-bottom: var(--spacing-0-5);
    padding-left: var(--spacing-0-5);
    cursor: text;
}

/* Contact input field */
.contact-input {
    width: 100%;
    background: transparent;
    border: none;
    color: var(--color-on-bg-high);
    font-size: var(--text-large-regular-size);
    line-height: var(--text-large-regular-line-height);
    font-weight: 400;
    outline: none;
    padding: 0;
    margin-left: var(--spacing-0-5);
}

.contact-input::placeholder {
    color: var(--color-on-bg-low);
}

.contact-input:focus {
    outline: none;
    box-shadow: none;
}

/* Contact textarea */
.contact-textarea {
    width: 100%;
    background: transparent;
    border: none;
    color: var(--color-on-bg-high);
    font-size: var(--text-large-regular-size);
    line-height: var(--text-large-regular-line-height);
    font-weight: 400;
    font-family: inherit;
    outline: none;
    resize: vertical;
    min-height: 100px;
    padding: 0;
    margin-left: var(--spacing-0-5);
}

.contact-textarea::placeholder {
    color: var(--color-on-bg-low);
}

.contact-textarea:focus {
    outline: none;
    box-shadow: none;
}

/* ========================================
   SPEAKER MODAL STYLES
   ======================================== */

/* CSS Variables for Modal */
:root {
    /* Modal Colors */
    --modal-bg: rgba(0, 0, 0, 0.6);
    --modal-content-bg: rgba(255, 255, 255, 0.02);
    --modal-card-bg: rgba(11, 6, 22, 0.95);
    
    /* Borders and Gradients */
    --modal-border-width: 1px;
    --modal-border-gradient: linear-gradient(to right, var(--color-pink-accent), var(--color-purple-secondary));
    --modal-photo-gradient: linear-gradient(to top, var(--color-purple-secondary), transparent);
    
    /* Navigation Buttons */
    --nav-button-size: 3rem;
    --nav-button-border-width: 1px;
    --nav-button-color: var(--color-pink-accent);
    --nav-button-hover-opacity: 0.8;
    --nav-button-disabled-opacity: 0.3;
    
    /* Close Button */
    --close-button-size: 2.5rem;
    --close-button-color: white;
    --close-button-hover-bg: rgba(255, 255, 255, 0.1);
    
    /* Animations */
    --modal-animation-duration: 0.3s;
    --modal-animation-ease: ease-out;
    
    /* Responsiveness */
    --modal-max-width: 900px;
    --modal-min-height: 500px;
    --modal-photo-size: 300px;
}

/* Modal Animations */
@keyframes modalFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes modalFadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}

@keyframes modalSlideIn {
    from { 
        opacity: 0; 
        transform: translateY(-20px) scale(0.95);
    }
    to { 
        opacity: 1; 
        transform: translateY(0) scale(1);
    }
}

@keyframes modalSlideOut {
    from { 
        opacity: 1; 
        transform: translateY(0) scale(1);
    }
    to { 
        opacity: 0; 
        transform: translateY(-20px) scale(0.95);
    }
}

/* Base Modal Structure */
#speakerModal {
    z-index: 9999;
}

#speakerModal .modal-backdrop {
    background: var(--modal-bg);
    animation: modalFadeIn var(--modal-animation-duration) var(--modal-animation-ease);
}

#speakerModal .modal-backdrop.fade-out {
    animation: modalFadeOut var(--modal-animation-duration) var(--modal-animation-ease);
}

#speakerModal #modalContent {
    width: 100%;
    max-width: var(--modal-max-width);
    animation: modalSlideIn var(--modal-animation-duration) var(--modal-animation-ease);
}

#speakerModal #modalContent.slide-out {
    animation: modalSlideOut var(--modal-animation-duration) var(--modal-animation-ease);
}

/* Main Card */
#speakerModal .modal-card {
    background: var(--modal-content-bg);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* Gradient Border Card */
#speakerModal .modal-card .absolute.inset-0 {
    background: var(--modal-border-gradient);
    padding: var(--modal-border-width);
}

#speakerModal .modal-card .absolute.inset-0 > div {
    background: var(--modal-card-bg);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* Speaker Photo */
#speakerModal .w-\[300px\] {
    flex-shrink: 0;
    aspect-ratio: 1;
    background: var(--color-background);
}

#speakerModal .w-\[300px\] .absolute.inset-0 {
    background: var(--modal-photo-gradient);
}

/* Arrow Button (Isolated Class) */
.nav-arrow-button {
    position: relative;
    width: var(--nav-button-size);
    height: var(--nav-button-size);
    border-radius: 50%;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s ease-in-out;
    z-index: 40;
}

.nav-arrow-button::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    padding: var(--nav-button-border-width);
    background: var(--modal-border-gradient);
    -webkit-mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.nav-arrow-button:hover {
    opacity: var(--nav-button-hover-opacity);
}

.nav-arrow-button:disabled {
    opacity: var(--nav-button-disabled-opacity);
    cursor: not-allowed;
}

.nav-arrow-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 1.5rem;
    height: 1.5rem;
    pointer-events: none;
    z-index: 10;
    color: var(--nav-button-color);
    fill: currentColor;
}

/* Ensure arrows are always visible */
.nav-arrow-button svg {
    fill: var(--nav-button-color) !important;
}

/* Navigation Buttons (Legacy - Maintained for Compatibility) */
#speakerModal .nav-button {
    position: relative;
    z-index: 40;
    background: transparent !important;
    transition: opacity 0.2s ease-in-out;
    cursor: pointer;
    width: var(--nav-button-size);
    height: var(--nav-button-size);
}

#speakerModal .nav-button:hover {
    opacity: var(--nav-button-hover-opacity);
}

#speakerModal .nav-button:disabled {
    opacity: var(--nav-button-disabled-opacity);
    cursor: not-allowed;
}

/* Gradient Border Buttons */
#speakerModal .nav-button .absolute.inset-0 {
    background: var(--modal-border-gradient);
    padding: var(--nav-button-border-width);
    z-index: 1;
}

#speakerModal .nav-button .absolute.inset-0 > div {
    background: transparent !important;
    z-index: 2;
}

/* Button Icons */
#speakerModal .nav-button svg {
    pointer-events: none;
    z-index: 10;
    fill: var(--nav-button-color) !important;
}

#speakerModal .nav-button svg path {
    fill: inherit;
}

/* Close Button */
#speakerModal .close-button {
    color: var(--close-button-color) !important;
    background: transparent;
    width: var(--close-button-size);
    height: var(--close-button-size);
}

#speakerModal .close-button:hover {
    background: var(--close-button-hover-bg);
}

/* Diagonal Connector Line */
#speakerModal .absolute.left-\[300px\] {
    z-index: 30;
}

/* Custom Scrollbar */
.custom-scrollbar::-webkit-scrollbar {
    width: 6px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 3px;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background: rgba(236, 72, 153, 0.3);
    border-radius: 3px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: rgba(236, 72, 153, 0.5);
}

/* Modal Responsiveness */
@media (max-width: 768px) {
    /* ===================================
       CALENDÁRIO - Otimizações Tablet
       =================================== */
    
    /* Wrapper do calendário com scroll horizontal otimizado */
    .calendar-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    /* Coluna de horários - sticky vertical para tablet */
    .calendar-time-cell {
        position: -webkit-sticky !important;
        position: sticky !important;
        left: 0 !important;
        z-index: 15 !important;
        background: var(--color-dark-purple) !important;
        border-right: 1px solid rgba(255,255,255,0.1) !important;
        padding: 0.625rem 0.5rem !important;
        font-size: 0.8rem !important;
    }
    
    /* Cabeçalhos das salas - otimizados para tablet */
    .calendar-room-header {
        padding: 0.875rem 0.75rem !important;
        font-size: 1rem !important;
        /* Permitir quebra de linha nos títulos */
        white-space: normal !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    /* Células base - otimizadas para tablet */
    .calendar-cell {
        /* Permitir quebra de linha nos títulos */
        white-space: normal !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        /* Garantir bordas consistentes */
        border-right: 1px solid rgba(255,255,255,0.1) !important;
        border-top: 1px solid rgba(255,255,255,0.1) !important;
    }
    
    /* Eventos - otimizados para tablet */
    .calendar-event,
    .calendar-pill {
        margin: 0.375rem !important;
        /* Permitir quebra de linha nos títulos */
        white-space: normal !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    /* Botões padronizados para tablet */
    .calendar-event-action {
        width: 1.5rem !important; /* 24px */
        height: 1.5rem !important; /* 24px */
        font-size: 0.75rem !important;
    }
    
    /* Container Adjustments */
    #speakerModal #modalContent {
        margin: 1rem;
        max-height: calc(100vh - 2rem);
    }
    
    #speakerModal #modalContent .flex {
        flex-direction: column;
    }

    /* Photo on Mobile */
    #speakerModal #modalContent .w-\[300px\] {
        width: 100%;
        height: 200px;
        border-radius: 1rem 1rem 0 0;
        margin-top: 0;
        aspect-ratio: auto;
    }
    
    /* Card on Mobile */
    #speakerModal .modal-card {
        border-radius: 0 0 1rem 1rem;
    }

    #speakerModal .modal-card .absolute.inset-0,
    #speakerModal .modal-card .absolute.inset-0 > div {
        border-radius: 0 0 1rem 1rem;
    }
    
    /* Buttons on Mobile */
    #speakerModal .nav-button,
    .nav-arrow-button {
        width: 2.5rem;
        height: 2.5rem;
    }
    
    #speakerModal .close-button {
        width: 2rem;
        height: 2rem;
        right: 1rem;
        top: 1rem;
    }

    /* Mobile Navigation Buttons - Rodapé centralizado */
    .nav-buttons-mobile {
        position: fixed;
        bottom: 1.5rem;
        left: 50%;
        transform: translateX(-50%);
        z-index: 9999;
        display: none; /* Escondido por padrão */
        align-items: center;
        gap: 1rem;
        pointer-events: auto;
        mix-blend-mode: normal;
    }

    /* Desktop Navigation Buttons - Visibilidade */
    .nav-button-desktop {
        display: block;
        position: absolute;
        z-index: 40;
    }

/* Desktop Breakpoint (min-width: 641px) */
@media (min-width: 641px) {
    /* Mostrar botões desktop */
    .nav-button-desktop {
        display: block !important;
        position: absolute;
        z-index: 40;
        opacity: 1;
        visibility: visible;
    }
    
    /* Esconder botões mobile */
    .nav-buttons-mobile {
        display: none !important;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
}

    .nav-buttons-mobile .nav-arrow-button {
        width: 3rem;
        height: 3rem;
        background: rgba(0, 0, 0, 0.8);
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.2);
        transition: all 0.3s ease;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
        /* Garantir que o ícone seja visível */
        color: white;
    }

    .nav-buttons-mobile .nav-arrow-button:hover {
        background: rgba(0, 0, 0, 0.9);
        border-color: rgba(255, 255, 255, 0.4);
        transform: scale(1.05);
        box-shadow: 0 6px 25px rgba(0, 0, 0, 0.5);
        /* Efeito de brilho no hover */
        filter: brightness(1.2);
    }

    .nav-buttons-mobile .nav-arrow-button:active {
        transform: scale(0.95);
        box-shadow: 0 2px 15px rgba(0, 0, 0, 0.3);
    }

    .nav-buttons-mobile .nav-arrow-button:disabled {
        opacity: 0.3;
        cursor: not-allowed;
        transform: none;
    }

    .nav-buttons-mobile .nav-arrow-button:disabled:hover {
        transform: none;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    }

    /* Hide Diagonal Line on Mobile */
    #speakerModal .absolute.left-\[300px\] {
        display: none;
    }
}

/* Modal Accessibility */
@media (prefers-reduced-motion: reduce) {
    #speakerModal .modal-backdrop,
    #speakerModal #modalContent {
        animation: none;
    }
    
    #speakerModal .nav-button,
    .nav-arrow-button,
    #speakerModal .close-button {
        transition: none;
    }
}

/* Contact Form Validation Styles */
.contact-input-group.error {
  border-color: #ef4444;
  box-shadow: 0 0 0 1px #ef4444;
}

.contact-input-group.error:focus-within {
  border-color: #ef4444;
  box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2);
}

.field-error {
  color: #ef4444;
  font-size: 0.875rem;
  margin-top: 0.25rem;
  animation: fadeIn 0.2s ease-in-out;
}

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

/* ===================================
   MOBILE LAYOUT IMPROVEMENTS
   =================================== */

/* Mobile Breakpoint (max-width: 640px) */
@media (max-width: 640px) {
    
    /* ===================================
       MODAL - Botões de navegação móveis
       =================================== */
    .nav-buttons-mobile {
        bottom: 2rem;
        gap: 1.5rem;
        display: flex !important;
    }

    .nav-buttons-mobile .nav-arrow-button {
        width: 3.5rem;
        height: 3.5rem;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    }

    .nav-buttons-mobile .nav-arrow-icon {
        width: 1.75rem;
        height: 1.75rem;
    }

    /* Ajustes para telas muito pequenas */
    @media (max-width: 480px) {
        .nav-buttons-mobile {
            bottom: 1.5rem;
            gap: 1rem;
        }

        .nav-buttons-mobile .nav-arrow-button {
            width: 3rem;
            height: 3rem;
        }

        .nav-buttons-mobile .nav-arrow-icon {
            width: 1.5rem;
            height: 1.5rem;
        }
    }

    /* ===================================
       DESKTOP - Esconder botões desktop em mobile
       =================================== */
    .nav-button-desktop {
        display: none !important;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
    
    /* ===================================
       GERAL - Container padding
       =================================== */
    .custom-container {
        padding-left: var(--spacing-3) !important; /* 24px */
        padding-right: var(--spacing-3) !important; /* 24px */
    }
    
    /* ===================================
       CALENDÁRIO - Otimizações Mobile
       =================================== */
    
    /* Wrapper do calendário com scroll horizontal otimizado */
    .calendar-wrapper {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE/Edge */
        /* Garantir que o sticky funcione corretamente */
        position: relative;
        /* Forçar contexto de stacking para sticky */
        transform: translateZ(0);
        will-change: scroll-position;
    }
    
    /* Solução alternativa para sticky da coluna de horários */
    .calendar-wrapper .calendar-time-cell {
        /* Forçar sticky com fallback */
        position: -webkit-sticky;
        position: sticky;
        left: 0;
        z-index: 999;
        /* Garantir que fique sempre visível */
        background: var(--color-dark-purple);
        border-right: 1px solid rgba(255,255,255,0.1);
    }
    
    /* Melhorar comportamento sticky no mobile */
    @media (max-width: 768px) {
        .calendar-wrapper {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
        }
        
        .calendar-header {
            position: -webkit-sticky !important;
            position: sticky !important;
            top: 0;
            z-index: 20;
            background: var(--color-dark-purple);
            border-bottom: 1px solid rgba(255,255,255,0.15);
            /* Garantir que o grid funcione corretamente */
            display: grid !important;
            grid-template-columns: var(--calendar-columns) !important;
        }
        
        .calendar-tracks-row {
            position: -webkit-sticky !important;
            position: sticky !important;
            top: 0;
            z-index: 19;
            background: var(--color-dark-purple);
            border-bottom: 1px solid rgba(255,255,255,0.1);
            /* Garantir que o grid funcione corretamente */
            display: grid !important;
            grid-template-columns: var(--calendar-columns) !important;
        }
        
        .calendar-time-cell {
            position: -webkit-sticky !important;
            position: sticky !important;
            left: 0;
            z-index: 15;
            background: var(--color-dark-purple);
            border-right: 1px solid rgba(255,255,255,0.1);
        }
        
        .calendar-tracks-row .tracks-time-cell {
            position: -webkit-sticky !important;
            position: sticky !important;
            left: 0;
            z-index: 16;
            background: var(--color-dark-purple);
            border-right: 1px solid rgba(255,255,255,0.1);
        }
        
        /* Garantir que o grid funcione corretamente */
        .calendar-grid {
            position: relative;
            z-index: 1;
            display: grid !important;
            grid-template-columns: var(--calendar-columns) !important;
            width: 100%;
            min-width: max-content;
            /* Corrigir problemas de alinhamento */
            grid-auto-rows: minmax(44px, auto);
        }
        
        /* Corrigir problemas de alinhamento */
        .calendar-room-header {
            padding: 0.5rem 0.25rem;
            font-size: 0.75rem;
            text-align: center;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        
        .calendar-track-cell {
            padding: 0;
            font-size: 0.75rem;
            text-align: center;
            /* Garantir que preencha toda a célula */
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
        }
    }
    
    .calendar-wrapper::-webkit-scrollbar {
        display: none; /* Chrome/Safari/Opera */
    }
    
    /* Cabeçalho das salas - sticky horizontal */
    .calendar-header {
        position: -webkit-sticky;
        position: sticky;
        top: 0;
        z-index: 20;
        background: var(--color-dark-purple);
        border-bottom: 2px solid rgba(255,255,255,0.15);
        /* Manter CSS Grid original do WordPress */
        display: grid;
        grid-template-columns: var(--calendar-columns);
        /* Garantir que funcione corretamente no mobile */
        width: 100%;
        min-width: max-content;
    }
    
    /* Coluna de horários - sticky vertical */
    .calendar-time-cell {
        position: -webkit-sticky;
        position: sticky;
        left: 0;
        z-index: 15;
        background: var(--color-dark-purple);
        border-right: 1px solid rgba(255,255,255,0.1);
        padding: 0.5rem 0.25rem; /* Reduzir padding */
        font-size: 0.75rem; /* Reduzir tamanho da fonte */
        text-align: center; /* Centralizar texto */
        /* Garantir que não saia da tela */
        min-width: 60px;
        max-width: 60px;
        /* Forçar contexto de stacking */
        transform: translateZ(0);
        backface-visibility: hidden;
    }
    
    /* Cabeçalhos das salas - otimizados para mobile */
    .calendar-room-header {
        padding: 0.75rem 0.5rem; /* Reduzir padding */
        font-size: 0.875rem; /* Reduzir tamanho da fonte */
        text-align: center;
        /* Permitir quebra de linha nos títulos */
        white-space: normal;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    /* Linha de trilhas - sticky também */
    .calendar-tracks-row {
        position: -webkit-sticky;
        position: sticky;
        top: 0;
        z-index: 19;
        background: var(--color-dark-purple);
        border-bottom: 1px solid rgba(255,255,255,0.1);
        /* Manter CSS Grid original do WordPress */
        display: grid;
        grid-template-columns: var(--calendar-columns);
        /* Garantir que funcione corretamente no mobile */
        width: 100%;
        min-width: max-content;
    }
    
    .calendar-tracks-row .tracks-time-cell {
        position: -webkit-sticky;
        position: sticky;
        left: 0;
        z-index: 16;
        background: var(--color-dark-purple);
        border-right: 1px solid rgba(255,255,255,0.1);
        /* Garantir que não saia da tela */
        min-width: 60px;
        max-width: 60px;
        /* Forçar contexto de stacking */
        transform: translateZ(0);
        backface-visibility: hidden;
    }
    
    /* Células de trilha - otimizadas para mobile */
    .calendar-track-cell {
        padding: 0.5rem 0.25rem;
        font-size: 0.75rem;
        text-align: center;
        /* Permitir quebra de linha nos títulos */
        white-space: normal;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    /* Grid principal - otimizado para mobile */
    .calendar-grid {
        /* Manter CSS Grid original do WordPress */
        display: grid;
        grid-template-columns: var(--calendar-columns);
        /* Garantir que funcione corretamente no mobile */
        width: 100%;
        min-width: max-content;
    }
    
    /* Células base - otimizadas para mobile */
    .calendar-cell {
        /* Permitir quebra de linha nos títulos */
        white-space: normal;
        word-wrap: break-word;
        overflow-wrap: break-word;
        /* Garantir bordas consistentes */
        border-right: 1px solid rgba(255,255,255,0.1);
        border-top: 1px solid rgba(255,255,255,0.1);
    }
    
    /* Eventos - otimizados para mobile */
    .calendar-event,
    .calendar-pill {
        margin: 0.25rem; /* Reduzir margem */
        /* Permitir quebra de linha nos títulos */
        white-space: normal;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    .calendar-event-inner {
        padding: 0.5rem; /* Reduzir padding */
        font-size: 0.8rem; /* Reduzir tamanho da fonte */
        /* Garantir que o texto quebre corretamente */
        line-height: 1.3;
        min-height: 3em; /* Altura mínima para múltiplas linhas */
    }
    
    .calendar-event-title {
        font-size: 0.8rem;
        line-height: 1.2;
        /* Permitir quebra de linha nos títulos */
        white-space: normal;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    .calendar-event-footer {
        margin-top: 0.5rem;
        gap: 0.5rem;
    }
    
    .calendar-event-speaker {
        font-size: 0.7rem;
        gap: 0.25rem;
    }
    
    .calendar-event-speaker .avatar-container {
        width: 1.5rem !important;
        height: 1.5rem !important;
    }
    
    .calendar-event-action {
        width: 1.5rem; /* 24px */
        height: 1.5rem; /* 24px */
        font-size: 0.75rem;
    }
    
    .calendar-event-multi {
        font-size: 0.7rem;
        gap: 0.25rem;
    }
    
    .calendar-event-multi .badge-count {
        width: 1.5rem;
        height: 1.5rem;
        font-size: 0.7rem;
    }
    
    /* Track pills - otimizados para mobile */
    .calendar-pill .pill-inner {
        padding: 0;
        font-size: 0.75rem;
        text-align: center;
        /* Permitir quebra de linha nos títulos */
        white-space: normal;
        word-wrap: break-word;
        overflow-wrap: break-word;
        /* Garantir que o texto quebre corretamente */
        line-height: 1.3;
        min-height: 2.6em; /* Altura mínima para 2 linhas */
        /* Garantir que preencha toda a célula */
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    /* ===================================
       EXPOSIÇÃO - Otimizações Mobile
       =================================== */
    .exhibition-section .exhibition-grid {
        grid-template-columns: 1fr !important;
        gap: var(--spacing-6) !important;
    }
    
    .exhibition-section .exhibition-content {
        order: 2 !important;
    }
    
    .exhibition-section .exhibition-map {
        order: 1 !important;
        margin-bottom: var(--spacing-4) !important;
    }
    
    .exhibition-section .exhibition-map-container {
        max-width: 100% !important;
        height: auto !important;
    }
    
    .exhibition-section .exhibition-map-illustration {
        width: 100% !important;
        height: auto !important;
        max-height: 300px !important;
        object-fit: contain !important;
    }
    
    .exhibition-section .exhibition-areas {
        gap: var(--spacing-3) !important;
    }
    
    .exhibition-section .exhibition-area {
        padding: var(--spacing-3) !important;
    }
    
    .exhibition-section .exhibition-area-title {
        font-size: 1.125rem !important;
        line-height: 1.3 !important;
    }
    
    .exhibition-section .exhibition-area-description {
        font-size: 0.875rem !important;
        line-height: 1.4 !important;
    }
    
    .exhibition-section .exhibition-area-features {
        gap: var(--spacing-3);
        margin-top: var(--spacing-3);
    }
    
    .exhibition-section .exhibition-area-feature {
        font-size: 0.8rem !important;
        gap: var(--spacing-2) !important;
    }
    
    /* ===================================
       MODAL DE EVENTOS - Otimizações Mobile
       =================================== */
    #eventModal .modal-card {
        margin: 1rem;
        max-width: calc(100vw - 2rem);
        max-height: calc(100vh - 2rem);
    }
    
    #eventModal #eventModalCard {
        width: 100%;
        max-width: none;
    }
    
    #eventModal .close-button {
        width: 2.5rem;
        height: 2.5rem;
        right: 1rem;
        top: 1rem;
    }
    
    #eventModal #eventModalTitle {
        font-size: 1.5rem;
        line-height: 1.3;
    }
    
    #eventModal #eventModalMeta {
        font-size: 0.875rem;
    }
    
    #eventModal #eventModalDescription {
        font-size: 0.875rem;
        line-height: 1.5;
    }
    
    #eventModal #eventModalSpeakers {
        font-size: 0.875rem;
    }
    
    #eventModal .avatar-container {
        width: 3rem;
        height: 3rem;
    }
    
    /* ===================================
       ELEMENTOS INTERATIVOS - Otimizações Mobile
       =================================== */
    /* Botões e elementos clicáveis com tamanho mínimo para touch */
    .calendar-event-action,
    .calendar-event-multi .badge-count,
    .close-button  {
        max-height: 24px; /* Tamanho mínimo recomendado para touch */
        max-width: 24px;
    }
    
    .w-8.h-8 {
        max-height: 24px; /* Tamanho mínimo recomendado para touch */
        max-width: 24px;
    }

    /* Melhorar espaçamento para elementos touch */
    .calendar-event-footer {
        gap: 0.75rem;
    }
    
    .calendar-event-speaker {
        gap: 0.5rem;
    }
    
    /* Otimizar espaçamento dos tabs */
    .ticket-nav {
        gap: 0.5rem;
    }
    
    .ticket-tab {
        min-height: 60px;
        justify-content: center;
        text-align: center;
    }
    
    /* ===================================
       TIPOGRAFIA - Otimizações Mobile
       =================================== */
    /* Ajustar tamanhos de texto para melhor legibilidade no mobile */
    .programacao-title {
        font-size: 2rem;
        line-height: 1.2;
    }
    
    .programacao-subtitle {
        font-size: 1rem;
        line-height: 1.4;
    }
    
    /* Melhorar espaçamento entre elementos */
    .programacao-hero .page-header {
        padding-top: var(--spacing-8);
        padding-bottom: var(--spacing-4);
        margin-bottom: 0;
        margin-top: 0;    
    }
    
    .programacao-hero .programacao-tabs {
        margin-top: var(--spacing-6);
    }
    
    /* Otimizar espaçamento da seção de calendário */
    .calendar-wrapper {
        margin-top: var(--spacing-4) !important;
    }
    
    /* ===================================
       NAVEGAÇÃO E SCROLL - Otimizações Mobile
       =================================== */
    /* Melhorar indicadores de scroll */
    
    
    /* Indicador de scroll horizontal sutil */
    .calendar-wrapper::before {
        content: '← Scroll →';
        position: absolute;
        top: 10px;
        right: 10px;
        background: rgba(255,255,255,0.1);
        color: rgba(255,255,255,0.6);
        padding: 4px 8px;
        border-radius: 12px;
        font-size: 0.7rem;
        font-weight: 500;
        pointer-events: none;
        z-index: 6;
        opacity: 0.8;
        backdrop-filter: blur(4px);
    }
    
    /* Melhorar navegação por tabs */
    .ticket-nav {
        scroll-snap-type: x mandatory;
        scroll-padding: 0 var(--spacing-3);
    }
    
    .ticket-tab {
        scroll-snap-align: start;
        align-content: center;
    }
    
    /* Otimizar scroll do calendário */
    .calendar-wrapper {
        scroll-snap-type: x proximity;
        scroll-behavior: smooth;
    }
    
    /* Melhorar feedback visual durante scroll */
    .calendar-wrapper:active {
        scroll-behavior: auto;
    }
    
    /* ===================================
       HERO - Card de data + countdown + botão
       =================================== */
    .hero-lights .radial-border-box {
        width: 100vw !important;
        margin-left: calc(-1 * var(--spacing-3)) !important;
        margin-right: calc(-1 * var(--spacing-3)) !important;
        padding-left: var(--spacing-3) !important;
        padding-right: var(--spacing-3) !important;
        border-radius: 0 !important;
    }
    
    /* ===================================
       TABS DE DIAS - Otimizações Mobile
       =================================== */
    .programacao-tabs .ticket-nav {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding-bottom: 8px;
    }
    
    .programacao-tabs .ticket-nav::-webkit-scrollbar {
        display: none;
    }
    
    .programacao-tabs .ticket-tab {
        min-width: 120px;
        flex-shrink: 0;
        padding: 0.75rem 0.5rem;
        font-size: 0.875rem;
    }
    
    .programacao-tabs .ticket-tab .text-xs {
        font-size: 0.7rem;
    }
    
    .hero-lights .radial-border-box .flex {
        justify-content: center !important;
        text-align: center !important;
    }
    
    /* ===================================
       PALESTRANTES - Layout das linhas
       =================================== */
    /* Primeira linha: 2 colunas em 2 linhas (4 speakers) */
    .speakers-row[data-row="0"] {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--spacing-4) !important;
    }
    
    /* Demais linhas: Layout horizontal compacto (1 por linha) */
    .speakers-row[data-row="1"],
    .speakers-row[data-row="2"],
    .speakers-row[data-row="3"],
    .speakers-row[data-row="4"],
    .speakers-row[data-row="5"],
    .speakers-row[data-row="6"],
    .speakers-row[data-row="7"],
    .speakers-row[data-row="8"],
    .speakers-row[data-row="9"] {
        display: flex;
        flex-direction: column;
        gap: var(--spacing-1);
        grid-template-columns: none;
    }
    
    /* Speaker card horizontal layout para linhas 1+ */
    .speakers-row[data-row="1"] .speaker-card,
    .speakers-row[data-row="2"] .speaker-card,
    .speakers-row[data-row="3"] .speaker-card,
    .speakers-row[data-row="4"] .speaker-card,
    .speakers-row[data-row="5"] .speaker-card,
    .speakers-row[data-row="6"] .speaker-card,
    .speakers-row[data-row="7"] .speaker-card,
    .speakers-row[data-row="8"] .speaker-card,
    .speakers-row[data-row="9"] .speaker-card {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: var(--spacing-2);
        padding: 0;
        background: transparent;
        border: none;
        box-shadow: none;
    }
    
    /* Foto reduzida para layout horizontal */
    .speakers-row[data-row="1"] .speaker-card .aspect-square,
    .speakers-row[data-row="2"] .speaker-card .aspect-square,
    .speakers-row[data-row="3"] .speaker-card .aspect-square,
    .speakers-row[data-row="4"] .speaker-card .aspect-square,
    .speakers-row[data-row="5"] .speaker-card .aspect-square,
    .speakers-row[data-row="6"] .speaker-card .aspect-square,
    .speakers-row[data-row="7"] .speaker-card .aspect-square,
    .speakers-row[data-row="8"] .speaker-card .aspect-square,
    .speakers-row[data-row="9"] .speaker-card .aspect-square {
        width: 60px;
        height: 60px;
        min-width: 60px;
        aspect-ratio: 1;
        flex-shrink: 0;
    }
    
    /* Conteúdo à direita */
    .speakers-row[data-row="1"] .speaker-card .mt-3,
    .speakers-row[data-row="2"] .speaker-card .mt-3,
    .speakers-row[data-row="3"] .speaker-card .mt-3,
    .speakers-row[data-row="4"] .speaker-card .mt-3,
    .speakers-row[data-row="5"] .speaker-card .mt-3,
    .speakers-row[data-row="6"] .speaker-card .mt-3,
    .speakers-row[data-row="7"] .speaker-card .mt-3,
    .speakers-row[data-row="8"] .speaker-card .mt-3,
    .speakers-row[data-row="9"] .speaker-card .mt-3 {
        margin-top: 0;
        flex: 1;
        min-width: 0;
    }
    
    /* Tipografia menor para layout horizontal */
    .speakers-row[data-row="1"] .speaker-card h4,
    .speakers-row[data-row="2"] .speaker-card h4,
    .speakers-row[data-row="3"] .speaker-card h4,
    .speakers-row[data-row="4"] .speaker-card h4,
    .speakers-row[data-row="5"] .speaker-card h4,
    .speakers-row[data-row="6"] .speaker-card h4,
    .speakers-row[data-row="7"] .speaker-card h4,
    .speakers-row[data-row="8"] .speaker-card h4,
    .speakers-row[data-row="9"] .speaker-card h4 {
        font-size: 1rem;
        line-height: 1.3;
        margin-top: 0;
    }
    
    .speakers-row[data-row="1"] .speaker-card .text-base-semibold,
    .speakers-row[data-row="2"] .speaker-card .text-base-semibold,
    .speakers-row[data-row="3"] .speaker-card .text-base-semibold,
    .speakers-row[data-row="4"] .speaker-card .text-base-semibold,
    .speakers-row[data-row="5"] .speaker-card .text-base-semibold,
    .speakers-row[data-row="6"] .speaker-card .text-base-semibold,
    .speakers-row[data-row="7"] .speaker-card .text-base-semibold,
    .speakers-row[data-row="8"] .speaker-card .text-base-semibold,
    .speakers-row[data-row="9"] .speaker-card .text-base-semibold {
        font-size: 0.875rem;
        margin-top: 0.25rem;
    }
    
    /* Garantir que a classe hidden funcione no mobile */
    .speakers-row.hidden {
        display: none;
    }
    
    /* Corrigir espaçamento entre grupos de palestrantes */
    #speakers-container {
        gap: var(--spacing-4) !important; /* Reduzir de space-y-8 para spacing-4 (32px) */
    }
    
    /* Reduzir padding da seção do botão */
    #speakers-cta {
        padding-top: var(--spacing-6) !important; /* Reduzir de py-16 para spacing-6 (48px) */
        padding-bottom: var(--spacing-8) !important; /* Reduzir de pb-24 para spacing-8 (64px) */
    }
    
    /* ===================================
       INGRESSOS - Título, tabs e layout
       =================================== */
    /* Container principal em coluna única */

    .tickets-wrapper {
        overflow-x: scroll;
        scrollbar-width: none;
        margin-right: calc(var(--spacing-3) * -1);
        padding-right: var(--spacing-3);
        
        margin-left: calc(var(--spacing-3) * -1);
        padding-left: var(--spacing-3);
    }

    .tickets-cards {
        max-width: calc(100vw - var(--spacing-6));
    }

    .tickets-section .tickets-container,
    .tickets-section .grid,
    .tickets-section .flex {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: none !important;
        gap: var(--spacing-6) !important;
    }
    
    /* Seção esquerda (título e tabs) ocupa toda largura */
    .tickets-section .tickets-left {
        width: calc(100vw - var(--spacing-6));
        max-width: none !important;
        order: 1 !important;
        position: sticky;
        left: 0;
    }

    .tickets-table-cell.header {
        transform: translateX(-200px);
    }
    .tickets-table-row:not(:first-child) .tickets-table-cell:nth-child(1){
        max-width: 200px;
    }
    
    /* Seção direita (tabela) fica abaixo */
    .tickets-section .tickets-right {
        width: 100% !important;
        max-width: none !important;
        order: 2 !important;
        margin-top: 250px;
    }
    
    /* Título ocupando toda a largura */
    .tickets-section h2,
    .tickets-section h3,
    .tickets-section .text-h2,
    .tickets-section .text-h3 {
        width: 100% !important;
        max-width: none !important;
        text-align: center !important;
    }
    
    /* Tabs ocupando toda a largura */
    .tickets-section .ticket-nav {
        width: 100% !important;
        max-width: none !important;
        display: flex !important;
        justify-content: center !important;
    }
    
    .tickets-section .ticket-tab {
        flex: 1 !important;
        text-align: center !important;
        max-width: 300px !important; /* Limitar largura máxima de cada tab */
    }
    
    /* Container da tabela com scroll horizontal */
    .tickets-section .tickets-table-container,
    .tickets-section .tickets-grid-container {
        width: 100% !important;
        overflow-x: auto !important;
        scrollbar-width: none !important; /* Firefox */
        -ms-overflow-style: none !important; /* IE/Edge */
        -webkit-overflow-scrolling: touch !important;
    }
    
    .tickets-section .tickets-table-container::-webkit-scrollbar,
    .tickets-section .tickets-grid-container::-webkit-scrollbar {
        display: none !important; /* Chrome/Safari */
    }
    
    /* Tabela de ingressos com largura fixa */
    .tickets-section .tickets-table,
    .tickets-section .tickets-grid {
        width: max-content !important;
        min-width: 100% !important;
        display: flex !important;
        gap: 0 !important;
    }
    
    /* Colunas de ingressos com largura fixa */
    .tickets-section .ticket-column,
    .tickets-section .ticket-cell {
        width: 280px !important;
        min-width: 280px !important;
        max-width: 280px !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
        padding: var(--spacing-3) !important;
    }
    
    /* Aba "Desconto para grupos" - padding e layout */
    .tickets-section .group-discount-content {
        padding-right: var(--spacing-3) !important;
        width: 100% !important;
    }
    
    .tickets-section .group-discount-cards {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--spacing-3) !important;
        width: 100% !important;
    }
    
    /* ===================================
       KPIS - Layout dos cards
       =================================== */
    .kpi-section .kpi-layout {
        flex-direction: column !important;
        gap: 0;
    }
    
    .kpi-section .kpi-left-hero {
        order: 1 !important;
        /* margin-bottom: var(--spacing-6) !important; */
    }
    
    .kpi-section .kpi-right {
        order: 2 !important;
        width: 100% !important;
        max-width: none !important;
        padding: var(--spacing-2);
    }
    
    .kpi-section .kpi-card {
        min-width: 0 !important;
        max-width: 100%;
        flex: 0 0 calc(50% - 10px);
    }
    
    /* ===================================
       SOBRE O CONGRESSO - Mosaico de imagens
       =================================== */
    .bg-\[\#var\(--color-dark-purple\)\] .w-full.pl-20 {
        padding-left: 0 !important;
    }
    
    .bg-\[\#var\(--color-dark-purple\)\] .mosaic-grid,
    .bg-\[\#var\(--color-dark-purple\)\] .simple-image-grid {
        width: 100% !important;
        justify-content: center !important;
    }
    
    /* ===================================
       AEC EXPO - Ordem do mosaico
       =================================== */
    .bg-\[\#var\(--color-dark-purple\)\] .grid.grid-cols-1.md\:grid-cols-2 {
        grid-template-columns: 1fr !important;
    }
    
    .bg-\[\#var\(--color-dark-purple\)\] .w-full.pr-20 {
        order: 2 !important;
        padding-right: 0 !important;
    }
    
    .bg-\[\#var\(--color-dark-purple\)\] .px-4.pt-10.md\:px-0 {
        order: 1 !important;
        padding-top: 0 !important;
        margin-bottom: var(--spacing-6) !important;
    }
    
    /* ===================================
       PATROCINADORES - Layout das logos
       =================================== */
    .sponsors-list {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: var(--spacing-3) !important;
    }
    
    /* Tab "Seja um patrocinador" - Imagem e features */
    .become-content-grid {
        grid-template-columns: 1fr !important;
        gap: var(--spacing-6) !important;
    }
    
    .become-content-grid .become-media,
    .become-content-grid .become-accordions {
        width: 100% !important;
        max-width: none !important;
    }
    
    .become-content-grid .become-media img {
        width: 100% !important;
        height: auto !important;
        object-fit: cover !important;
    }
}

/* ===================================
   MOBILE LAYOUT IMPROVEMENTS
   =================================== */

/* ===================================
   FOOTER - Desktop Layout Improvements
   =================================== */
@media (min-width: 1024px) {
    /* Footer two-column layout */
    #contato-footer .grid-cols-1.lg\:grid-cols-2 {
        align-items: start;
    }
    
    /* Left column - Title and social media */
    #contato-footer .flex.flex-col.justify-start:first-child {
        padding-right: var(--spacing-8);
    }
    
    /* Right column - Map and location */
    #contato-footer .flex.flex-col.justify-start:last-child {
        padding-left: var(--spacing-8);
    }
    
    /* Map container improvements */
    #contato-footer .relative.rounded-xl {
        min-height: 300px;
        height: auto;
    }
    
    /* Social media icons spacing */
    #contato-footer .flex.space-x-8 {
        margin-top: var(--spacing-4);
    }
    
    /* Logo and title spacing */
    #contato-footer .mb-10 {
        margin-bottom: var(--spacing-10);
    }
    
    /* Social media bottom margin */
    #contato-footer .mb-10:has(.flex.space-x-8) {
        margin-bottom: var(--spacing-10);
    }
    
    /* Map bottom margin */
    #contato-footer .mb-8:has(iframe) {
        margin-bottom: var(--spacing-8);
    }
    
    /* Enhanced hover effects for social media */
    #contato-footer .fab {
        transition: all 0.3s ease;
    }
    
    #contato-footer .fab:hover {
        transform: translateY(-2px);
    }
}

/* =============================================================================
   TICKETS DESCRIPTION STYLES
   ============================================================================= */

.tickets-description {
    margin-top: 2rem;
    padding: 0 1rem;
    max-width: 600px;
    text-align: right;
    margin-left: auto;
}

.tickets-description .text-sm {
    font-size: 0.875rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.7);
    text-align: left;
    max-width: 100%;
}

.tickets-description .text-sm p {
    margin: 0 0 0.5rem 0;
}

.tickets-description .text-sm p:last-child {
    margin-bottom: 0;
}

.tickets-description .text-sm br {
    margin-bottom: 0.25rem;
}

.tickets-description .text-sm strong {
    font-weight: 600;
    color: rgba(255, 255, 255, 0.85);
}

.tickets-description .text-sm em {
    font-style: italic;
    color: rgba(255, 255, 255, 0.8);
}

/* Responsive adjustments */
@media (min-width: 768px) {
    .tickets-description {
        padding: 0;
        margin-top: 2.5rem;
    }
    
    .tickets-description .text-sm {
        font-size: 0.9rem;
        line-height: 1.6;
    }
}

@media (min-width: 1024px) {
    .tickets-description {
        margin-top: 3rem;
    }
    
    .tickets-description .text-sm {
        font-size: 0.95rem;
        line-height: 1.7;
    }
}

