/* ============================================
   MODERN.CSS - Sistema de Design CAT Consultores
   ============================================ */

/* ---------- Reset & Base ---------- */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* ===== CORES CAT CONSULTORES ===== */
    --cat-red: #E62B1A;
    --cat-red-dark: #C41E10;
    --cat-red-light: #FFE8E5;
    --cat-red-gradient: linear-gradient(135deg, #E62B1A, #C41E10);
    --cat-gold: #D4A017;
    --cat-gold-light: #F5E6A0;

    /* Cores Primárias (Vermelho) */
    --primary: #E62B1A;
    --primary-dark: #C41E10;
    --primary-light: #FFE8E5;
    --primary-gradient: linear-gradient(135deg, #E62B1A, #C41E10);

    /* Cores Neutras */
    --text-primary: #1a1a2e;
    --text-secondary: #4a4a6a;
    --text-muted: #8a8aaa;
    --bg-primary: #ffffff;
    --bg-secondary: #f8f9fa;
    --bg-tertiary: #f0f2f5;
    --border-color: #e8ecf1;

    /* Sombras com tom vermelho */
    --shadow-sm: 0 2px 8px rgba(230, 43, 26, 0.08);
    --shadow-md: 0 10px 40px rgba(230, 43, 26, 0.10);
    --shadow-lg: 0 20px 60px rgba(230, 43, 26, 0.12);
    --shadow-xl: 0 30px 80px rgba(230, 43, 26, 0.16);

    /* Espaçamento - Responsivo */
    --spacing-xs: clamp(0.125rem, 0.5vw, 0.25rem);
    --spacing-sm: clamp(0.25rem, 1vw, 0.5rem);
    --spacing-md: clamp(0.5rem, 2vw, 1rem);
    --spacing-lg: clamp(1rem, 3vw, 2rem);
    --spacing-xl: clamp(2rem, 5vw, 4rem);
    --spacing-2xl: clamp(3rem, 8vw, 6rem);
    --spacing-3xl: clamp(4rem, 10vw, 8rem);

    /* Tipografia - Responsiva */
    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-size-xs: clamp(0.625rem, 0.8vw, 0.75rem);
    --font-size-sm: clamp(0.75rem, 1vw, 0.875rem);
    --font-size-md: clamp(0.875rem, 1.2vw, 1rem);
    --font-size-lg: clamp(1rem, 1.5vw, 1.125rem);
    --font-size-xl: clamp(1.125rem, 2vw, 1.25rem);
    --font-size-2xl: clamp(1.25rem, 2.5vw, 1.5rem);
    --font-size-3xl: clamp(1.5rem, 3.5vw, 2rem);
    --font-size-4xl: clamp(1.75rem, 4.5vw, 2.5rem);
    --font-size-5xl: clamp(2rem, 6vw, 3.5rem);
    --font-size-6xl: clamp(2.5rem, 8vw, 4.5rem);

    /* Container Widths - Responsivo */
    --container-sm: 100%;
    --container-md: 100%;
    --container-lg: 100%;
    --container-xl: 1200px;
    --container-2xl: 1400px;
    --container-full: 100%;

    /* Transições */
    --transition-fast: 0.15s ease;
    --transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 0.6s cubic-bezier(0.4, 0, 0.2, 1);

    /* Border Radius */
    --radius-sm: clamp(0.125rem, 0.3vw, 0.25rem);
    --radius-md: clamp(0.25rem, 0.6vw, 0.5rem);
    --radius-lg: clamp(0.5rem, 1.5vw, 1rem);
    --radius-xl: clamp(0.75rem, 2vw, 1.5rem);
    --radius-full: 9999px;

    /* Z-Index */
    --z-dropdown: 1000;
    --z-sticky: 1020;
    --z-fixed: 1030;
    --z-modal: 1040;
    --z-popover: 1050;
    --z-tooltip: 1060;
}

/* Modo Escuro */
[data-theme="dark"] {
    --primary: #FF4A3A;
    --primary-dark: #E62B1A;
    --primary-light: #2A1A18;

    --text-primary: #e8e8f0;
    --text-secondary: #a8a8c0;
    --text-muted: #6a6a8a;
    --bg-primary: #0f0f1a;
    --bg-secondary: #1a1a2e;
    --bg-tertiary: #252540;
    --border-color: #2a2a4a;

    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 10px 40px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.5);

    --cat-red: #FF4A3A;
    --cat-red-dark: #E62B1A;
    --cat-red-light: #2A1A18;
    --cat-gold: #E8C84A;
}

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 16px;
}

body {
    font-family: var(--font-family);
    font-size: var(--font-size-md);
    line-height: 1.7;
    color: var(--text-primary);
    background: var(--bg-primary);
    transition: background var(--transition-base), color var(--transition-base);
    min-height: 100vh;
    min-height: 100dvh; /* Dynamic viewport height para mobile */
}

/* ---------- Container Responsivo ---------- */
.container {
    width: 100%;
    max-width: var(--container-xl);
    margin: 0 auto;
    padding: 0 var(--spacing-lg);
}

/* Container para telas muito grandes (Smart TVs, 4K) */
@media (min-width: 1921px) {
    .container {
        max-width: var(--container-2xl);
        padding: 0 var(--spacing-xl);
    }
}

/* Container para tablets grandes */
@media (max-width: 1024px) {
    .container {
        max-width: var(--container-lg);
    }
}

/* Container para tablets pequenos */
@media (max-width: 768px) {
    .container {
        max-width: var(--container-md);
        padding: 0 var(--spacing-md);
    }
}

/* Container para smartphones */
@media (max-width: 480px) {
    .container {
        max-width: var(--container-sm);
        padding: 0 var(--spacing-sm);
    }
}

/* ---------- Utilitários Responsivos ---------- */
.text-gradient {
    background: var(--primary-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.text-center {
    text-align: center;
}
.text-left {
    text-align: left;
}
.text-right {
    text-align: right;
}

/* ---------- Grid System Responsivo ---------- */
.grid {
    display: grid;
    gap: var(--spacing-lg);
}

.grid-2 {
    grid-template-columns: repeat(2, 1fr);
}
.grid-3 {
    grid-template-columns: repeat(3, 1fr);
}
.grid-4 {
    grid-template-columns: repeat(4, 1fr);
}

/* Grids Responsivos */
@media (max-width: 1024px) {
    .grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .grid-2,
    .grid-3,
    .grid-4 {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }
}

/* ---------- Sections ---------- */
.section {
    padding: var(--spacing-2xl) 0;
    position: relative;
}

.section-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto var(--spacing-xl);
}

.section-tag {
    display: inline-block;
    font-size: var(--font-size-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--primary);
    margin-bottom: var(--spacing-sm);
}

.section-title {
    font-size: var(--font-size-4xl);
    margin-bottom: var(--spacing-md);
}

.section-subtitle {
    font-size: var(--font-size-lg);
    color: var(--text-secondary);
    max-width: 480px;
    margin: 0 auto;
}

/* ---------- Responsividade ---------- */
@media (max-width: 768px) {
    :root {
        --font-size-5xl: 2.5rem;
        --font-size-4xl: 2rem;
        --font-size-3xl: 1.75rem;
        --spacing-2xl: 3rem;
        --spacing-3xl: 4rem;
    }

    .section {
        padding: var(--spacing-xl) 0;
    }

    .section-header {
        max-width: 100%;
        padding: 0 var(--spacing-md);
    }
}

@media (max-width: 480px) {
    :root {
        --font-size-5xl: 2rem;
        --font-size-4xl: 1.75rem;
        --font-size-3xl: 1.5rem;
        --spacing-2xl: 2rem;
        --spacing-3xl: 3rem;
    }

    .section-title {
        font-size: var(--font-size-3xl);
    }
}

/* ===== SUPORTE PARA TELAS MUITO GRANDES (4K/Smart TV) ===== */
@media (min-width: 1921px) {
    :root {
        --font-size-md: 1.125rem;
        --font-size-lg: 1.25rem;
        --font-size-xl: 1.5rem;
        --font-size-2xl: 1.75rem;
        --font-size-3xl: 2.25rem;
        --font-size-4xl: 3rem;
        --font-size-5xl: 4rem;
        --font-size-6xl: 5rem;
    }

    body {
        line-height: 1.8;
    }

    .section {
        padding: var(--spacing-3xl) 0;
    }
}

/* ===== GARANTIR QUE AS PÁGINAS NÃO FIQUEM EM BRANCO ===== */
body {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

#app, .app-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.section {
    flex: 1;
}

/* Garantir que o conteúdo seja visível */
.page-hero,
.blog-hero,
.section {
    position: relative;
    z-index: 1;
}

/* Garantir que o overlay das partículas não bloqueie o conteúdo */
canvas#particles-canvas {
    pointer-events: none !important;
    z-index: 0 !important;
}

/* Garantir que o conteúdo fique acima das partículas */
.hero, .section, .page-hero, .blog-hero {
    position: relative;
    z-index: 1;
}

/* Forçar visibilidade do conteúdo */
.animate-on-scroll {
    visibility: visible !important;
}

/* Garantir que o conteúdo não fique transparente */
* {
    opacity: 1 !important;
}