/* Fontes hospedadas no próprio site */
@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 300 900; font-display: swap; src: url('../fonts/rubik-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 200 1000; font-display: swap; src: url('../fonts/nunito-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Estilos compartilhados de todas as páginas (animações e utilitários).
   Antes duplicados em <style> inline em cada HTML. */

.reveal { opacity: 0; transform: translateY(30px); filter: blur(8px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
.reveal.in-view { opacity: 1; transform: translateY(0); filter: blur(0); }

.reveal-fade { opacity: 0; filter: blur(12px); transform: scale(0.95); transition: all 1s ease-out; }
.reveal-fade.in-view { opacity: 1; filter: blur(0); transform: scale(1); }

/* Grid Backgrounds */
.grid-bg-light { 
    background-image: 
        linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px), 
        linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px); 
    background-size: 50px 50px; 
    background-position: center center;
}
.grid-bg-blue { 
    background-image: 
        linear-gradient(rgba(11,67,140,0.06) 1px, transparent 1px), 
        linear-gradient(90deg, rgba(11,67,140,0.06) 1px, transparent 1px); 
    background-size: 50px 50px; 
    background-position: center center;
}

/* Ambient Glow Blobs */
@keyframes blob {
    0% { transform: translate(0px, 0px) scale(1); }
    33% { transform: translate(30px, -50px) scale(1.1); }
    66% { transform: translate(-20px, 20px) scale(0.9); }
    100% { transform: translate(0px, 0px) scale(1); }
}
.animate-blob { animation: blob 15s infinite; }
.animation-delay-2000 { animation-delay: 2s; }
.animation-delay-4000 { animation-delay: 4s; }

/* Floating Symbols Animation */
@keyframes float-symbol {
    0% { transform: translate(0px, 0px) rotate(0deg) scale(1); }
    33% { transform: translate(30px, -40px) rotate(15deg) scale(1.05); }
    66% { transform: translate(-20px, 30px) rotate(-10deg) scale(0.95); }
    100% { transform: translate(0px, 0px) rotate(0deg) scale(1); }
}
.animate-symbol-1 { animation: float-symbol 25s ease-in-out infinite; }
.animate-symbol-2 { animation: float-symbol 30s ease-in-out infinite reverse; }
.animate-symbol-3 { animation: float-symbol 28s ease-in-out infinite 2s; }
.animate-symbol-4 { animation: float-symbol 35s ease-in-out infinite 5s reverse; }
/* Celular e quem pede menos movimento: enfeites de fundo ficam parados (poupa o processador) */
@media (max-width: 767px), (prefers-reduced-motion: reduce) {
    .animate-blob, .animate-symbol-1, .animate-symbol-2, .animate-symbol-3, .animate-symbol-4 { animation: none; }
}

.bg-symbol {
    background-image: url('../images/simbolo-idc-512.webp');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.15; /* Aumentado para maior destaque */
    filter: drop-shadow(0 0 15px rgba(255,255,255,0.3)) brightness(1.2);
}

/* Text Shine & Scale Animation */
@keyframes text-shine-scale {
    0%, 100% {
        background-position: 200% center;
        transform: scale(1);
    }
    50% {
        background-position: -200% center;
        transform: scale(1.03);
    }
}
.animate-text-highlight {
    background-image: linear-gradient(110deg, #BFA169 10%, #FFFFFF 30%, #BFA169 50%, #FFFFFF 70%, #BFA169 90%);
    background-size: 200% auto;
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    display: inline-block;
    animation: text-shine-scale 18s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

/* Quiz Slide Horizontal Animation */
@keyframes slide-horizontal {
    0%, 100% { transform: translateX(-35%); }
    50% { transform: translateX(35%); }
}
.animate-slide-horizontal {
    animation: slide-horizontal 8s ease-in-out infinite;
}

/* Floating Box for Tagline */
@keyframes float-box {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}
.animate-float-box {
    animation: float-box 4s ease-in-out infinite;
}

/* Shimmer Border Animation */
@keyframes shimmer-border {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Gold Shine without Scale */
@keyframes gold-shine-only {
    0% { background-position: 200% center; }
    100% { background-position: -200% center; }
}
.animate-gold-shine {
    background-image: linear-gradient(110deg, #BFA169 20%, #FFF 40%, #BFA169 60%, #FFF 80%, #BFA169 100%);
    background-size: 200% auto;
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    display: inline-block;
    animation: gold-shine-only 16s linear infinite;
}

/* Blue Shine without Scale */
@keyframes blue-shine-only {
    0% { background-position: 200% center; }
    100% { background-position: -200% center; }
}
.animate-blue-shine {
    background-image: linear-gradient(110deg, #0B438C 20%, #00D2FF 40%, #0B438C 60%, #00D2FF 80%, #0B438C 100%);
    background-size: 200% auto;
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    display: inline-block;
    animation: blue-shine-only 16s linear infinite;
}

/* Marquee Animation */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(-50% - 12px)); }
}
.animate-marquee {
    animation: marquee 30s linear infinite;
}
.animate-marquee:hover {
    animation-play-state: paused;
}

/* Bounce X Animation */
@keyframes bounce-x {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(5px); }
}
.animate-bounce-x {
    animation: bounce-x 1.5s ease-in-out infinite;
}

/* Diagonal Arrow Bounce */
@keyframes arrow-bounce {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(3px, -3px); }
}
.animate-arrow {
    animation: arrow-bounce 1.5s ease-in-out infinite;
}

::selection {
    background-color: #0A3873;
    color: #FFFFFF;
}

@media (max-width: 767px) {
    .custom-navbar { height: 64px !important; }
    .custom-navbar-menu { height: 64px !important; }
    .custom-hero { padding-top: 80px !important; padding-bottom: 40px !important; }
    .custom-tagline-box { padding: 6px 12px !important; }
    .custom-tagline { font-size: 10px !important; }
    .custom-title { font-size: 28px !important; margin-bottom: 12px !important; }
    .custom-subtitle { font-size: 14px !important; margin-bottom: 24px !important; }
    .custom-wa-box { padding: 6px 8px !important; font-size: 10px !important; }
    .custom-wa-tri { right: 16px !important; width: 12px !important; height: 12px !important; }
}

/* Botão Submit Ativo (Azul) e Animações */
@keyframes button-pulse {
    0%, 100% { transform: scale(1); box-shadow: 0 0 20px rgba(11, 67, 140, 0.4); }
    50% { transform: scale(1.02); box-shadow: 0 0 30px rgba(11, 67, 140, 0.6); }
}
@keyframes arrow-bounce-left {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(-4px); }
}
.btn-active-blue {
    background-color: #0B438C !important;
    color: #FFFFFF !important;
    box-shadow: 0 0 20px rgba(11, 67, 140, 0.4) !important;
    cursor: pointer !important;
    border-color: transparent !important;
    animation: button-pulse 2s infinite ease-in-out !important;
}
.btn-active-blue:hover {
    background-color: #1258b3 !important;
    animation: none !important;
    transform: translateY(-2px) !important;
}
.btn-active-blue .btn-arrow {
    display: inline-block;
    animation: arrow-bounce-left 1.5s infinite ease-in-out;
}

/* Esconde a barra de rolagem mantendo a rolagem (carrosséis) */
.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
