/* Estilos Globais e Animações */
@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}
@keyframes slideUp {
    from { transform: translateY(50px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes scaleIn {
    from { transform: scale(0.8); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}
@keyframes rotateSlow {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* --- UTILITÁRIOS GLOBAIS --- */

.hover-lift {
    transition: all 0.3s ease;
}
.hover-lift:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

.text-gradient {
    background: linear-gradient(135deg, #ffbc00, #fdc850);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent; /* Fallback */
}

.observer-element {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease;
}
.observer-element.animate {
    opacity: 1;
    transform: translateY(0);
}

/* --- ESTILOS ESPECÍFICOS DE COMPONENTES --- */

/* Estilos da Página de Consultoria e outros cards */
.hero-solid-bg {
    background: linear-gradient(135deg, #1a1a1a 0%, #106cc2 100%);
}
.card-hover {
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.card-hover:hover {
    transform: translateY(-12px);
    box-shadow: 0 32px 64px -12px rgba(0, 0, 0, 0.25);
}
.step-number {
    background: linear-gradient(135deg, #ffbc00, #fdc850);
}

/* Estilos de Accordion (unificado) */
.accordion-content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s ease;
}
.accordion-content.active {
    max-height: 250px; /* Aumentado para comportar mais texto */
    opacity: 1;
}
.accordion-icon {
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.accordion-icon.rotated {
    transform: rotate(180deg);
}

/* Estilos dos Tabs (Página de Agentes) */
.tab-content {
    display: none;
}
.tab-content.active {
    display: block;
}
.tab-trigger {
    transition: all 0.3s ease;
}
.tab-trigger.active {
    background-color: #ffbc00; /* davinci-yellow */
    color: #1a1a1a; /* davinci-black */
    border-bottom-color: #ffbc00;
}

/* Estilos dos Segments/Mobile Accordion (Página de Agentes) */
.segment-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-in-out;
}
.segment-content.open {
    max-height: 500px; /* Valor alto para garantir que todo o conteúdo caiba */
}