@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&display=swap');

:root {
    --bg-0:             #06060f;
    --bg-1:             #0c0c1d;
    --bg-2:             #111128;
    --bg-card:          rgba( 14, 14, 32, 0.9 );
    --c-blue:           #19c3ff;
    --c-blue-dim:       rgba( 4, 125, 168, 0.12 );
    --c-purple:         #7c3aed;
    --c-purple-dim:     rgba( 124, 58, 237, 0.12 );
    --c-gold:           #efbf04;
    --c-gold-dim:       rgba( 64, 51, 1, 0.12 );
    --text-1:           #f0f0ff;
    --text-2:           #a8a8c8;
    --text-3:           #606078;
    --border:           rgba( 255, 255, 255, 0.07 );
    --border-accent:    rgba( 0, 194, 232, 0.22 );
    --grad-primary:     linear-gradient( 135deg, #19c3ff 0%, #7c3aed 100% );
    --grad-gold:        linear-gradient( 135deg, #efbf04 0%, #403301 100% );
    --shadow-card:      0 8px 32px rgba( 0, 0, 0, 0.5 );
    --shadow-glow-blue: 0 0 48px rgba( 4, 125, 168, 0.08 );
    --r-sm:             8px;
    --r-md:             14px;
    --r-lg:             22px;
    --ease:             cubic-bezier( 0.4, 0, 0.2, 1 );
    --dur:              320ms;
    --f-head:           'Sora', sans-serif;
    --f-body:           'Inter', sans-serif;
    --c-0f61db:         #0f61db;
    --c-b352e5:         #b352e5;
    --c-ffffff:         #ffffff;
    --c-00c2e8-15:      rgba( 0, 194, 232, 0.15 );
    --c-00c2e8-20:      rgba( 0, 194, 232, 0.2 );
    --c-0a0a0f-80:      rgba( 10, 10, 15, 0.8 );
    --c-2a2438:         #2a2438;
    --c-fafafa:         #fafafa;
    --c-8b5cf6-30:      rgba( 139, 92, 246, 0.3 );
    --c-a78bfa-50:      rgba( 167, 139, 250, 0.5 );
    --c-a78bfa:         #a78bfa;
    --c-8b5cf6:         #8b5cf6;
    --c-0a0a0f-95:      rgba( 10, 10, 15, 0.95 );
    --c-1a0f33:         #1a0f33;
    --c-8b5cf6-25:      rgba( 139, 92, 246, 0.25 );
    --c-ffffff-50:      rgba( 255, 255, 255, 0.5 );
    --c-8b5cf6-40:      rgba( 139, 92, 246, 0.4 );
    --c-ffffff-20:      rgba( 255, 255, 255, 0.2 );
    --c-8b5cf6-15:      rgba( 139, 92, 246, 0.15 );
    --c-8b5cf6-12:      rgba( 139, 92, 246, 0.12 );
    --c-8b5cf6-10:      rgba( 139, 92, 246, 0.1 );
    --c-8b5cf6-08:      rgba( 139, 92, 246, 0.08 );
    --c-8b5cf6-06:      rgba( 139, 92, 246, 0.06 );
    --c-8b5cf6-05:      rgba( 139, 92, 246, 0.05 );
    --c-a78bfa-20:      rgba( 167, 139, 250, 0.2 );
    --c-a78bfa-80:      rgba( 167, 139, 250, 0.8 );
    --c-00c2e8-08:      rgba( 0, 194, 232, 0.08 );
    --c-ffffff-03:      rgba( 255, 255, 255, 0.03 );
    --c-00c2e8-04:      rgba( 0, 194, 232, 0.04 );
    --c-10b981-10:      rgba( 16, 185, 129, 0.1 );
    --c-10b981-30:      rgba( 16, 185, 129, 0.3 );
    --c-34d399:         #34d399;
    --c-ef4444-10:      rgba( 239, 68, 68, 0.1 );
    --c-ef4444-30:      rgba( 239, 68, 68, 0.3 );
    --c-f87171:         #f87171;
    --c-ffffff-04:      rgba( 255, 255, 255, 0.04 );
}

*, *::before, *::after {
    box-sizing: border-box;
    margin:     0;
    padding:    0;
}

html {
    scroll-behavior:    smooth;
    scroll-padding-top: 80px;
}

body {
    font-family:            var( --f-body );
    background-color:       var( --bg-0 );
    color:                  var( --text-1 );
    line-height:            1.7;
    font-size:              1rem;
    overflow-x:             hidden;
    -webkit-font-smoothing: antialiased;
}

img {
    max-width: 100%;
    height:    auto;
    display:   block;
}

a {
    color:           var( --c-blue );
    text-decoration: none;
    transition:      color var( --dur ) var( --ease );
}

a:hover { color: var( --text-1 ); }

ul { list-style: none; }

:focus-visible {
    outline:        2px solid var( --c-blue );
    outline-offset: 3px;
    border-radius:  4px;
}

.sr-only {
    position:    absolute;
    width:       1px;
    height:      1px;
    padding:     0;
    margin:      -1px;
    overflow:    hidden;
    clip-path:   inset( 50% );
    white-space: nowrap;
    border:      0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var( --f-head );
    line-height: 1.2;
    color:       var( --text-1 );
}

.grad-text {
    background:              var( --grad-primary );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip:         text;
}

.gold-text {
    background:              var( --grad-gold );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip:         text;
}

.section-tag {
    display:        inline-block;
    font-size:      0.72rem;
    font-weight:    600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color:          var( --c-blue );
    margin-bottom:  1rem;
}

.section-title {
    font-size:     clamp( 1.9rem, 4vw, 2.8rem );
    font-weight:   700;
    margin-bottom: 1rem;
}

.section-subtitle {
    font-size: 1.05rem;
    color:     var( --text-2 );
    max-width: 560px;
    margin:    0 auto 3rem;
}

.section-divider {
    width:         48px;
    height:        2px;
    background:    var( --grad-primary );
    margin:        1.2rem auto 0;
    border-radius: 2px;
}

.video-transparente {
    width:          350px;
    height:         350px;
    display:        block;
    background:     transparent;
    border:         none;
    outline:        none;
    mix-blend-mode: screen;
    pointer-events: none;
    user-select:    none;
    object-fit:     contain;
}

section { padding: 100px 0; }

section:nth-of-type(even) { background-color: var( --bg-1 ); }

.btn-primary-nx {
    display:        inline-flex;
    align-items:    center;
    gap:            10px;
    padding:        14px 32px;
    background:     linear-gradient( 135deg, #19c3ff 0%, #7c3aed 100% );
    color:          var( --c-ffffff );
    font-family:    var( --f-head );
    font-size:      0.92rem;
    font-weight:    600;
    border:         none;
    border-radius:  var( --r-sm );
    cursor:         pointer;
    transition:     opacity var( --dur ) var( --ease ), transform var( --dur ) var( --ease );
    letter-spacing: 0.02em;
}

.btn-primary-nx:hover {
    opacity:   0.88;
    transform: translateY( -2px );
    color:     var( --c-ffffff );
}

.btn-outline-nx {
    display:        inline-flex;
    align-items:    center;
    gap:            10px;
    padding:        13px 30px;
    background:     transparent;
    color:          var( --text-1 );
    font-family:    var( --f-head );
    font-size:      0.92rem;
    font-weight:    500;
    border:         1px solid var( --border );
    border-radius:  var( --r-sm );
    cursor:         pointer;
    transition:     border-color var( --dur ) var( --ease ), background var( --dur ) var( --ease ), transform var( --dur ) var( --ease );
    letter-spacing: 0.02em;
}

.btn-outline-nx:hover {
    border-color: var( --c-blue );
    background:   var( --c-blue-dim );
    color:        var( --text-1 );
    transform:    translateY( -2px );
}

.card-nx {
    background:              var( --bg-card );
    border:                  1px solid var( --border );
    border-radius:           var( --r-lg );
    padding:                 2rem;
    transition:              border-color var( --dur ) var( --ease ), transform var( --dur ) var( --ease ), box-shadow var( --dur ) var( --ease );
    backdrop-filter:         blur( 12px );
    -webkit-backdrop-filter: blur( 12px );
}

.card-nx:hover {
    border-color: var( --border-accent );
    transform:    translateY( -4px );
    box-shadow:   var( --shadow-glow-blue );
}

.icon-wrap {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    width:           52px;
    height:          52px;
    border-radius:   var( --r-sm );
    background:      var( --c-blue-dim );
    border:          1px solid var( --c-00c2e8-15 );
    margin-bottom:   1.25rem;
    font-size:       1.4rem;
}

.icon-wrap svg {
    width:  24px;
    height: 24px;
    stroke: var( --c-blue );
}

.badge-nx {
    display:        inline-block;
    padding:        4px 12px;
    border-radius:  100px;
    font-size:      0.72rem;
    font-weight:    600;
    letter-spacing: 0.08em;
    background:     var( --c-blue-dim );
    color:          var( --c-blue );
    border:         1px solid var( --c-00c2e8-20 );
}

.hidden { display: none !important; }

#header {
    position:      fixed;
    top:           0;
    left:          0;
    width:         100%;
    z-index:       1000;
    border-bottom: 1px solid transparent;
    transition:    background-color 300ms ease, backdrop-filter 300ms ease, border-color 300ms ease;
}

#header.scrolled {
    background-color:        var( --c-0a0a0f-80 );
    backdrop-filter:         blur( 12px );
    -webkit-backdrop-filter: blur( 12px );
    border-bottom-color:     var( --c-2a2438 );
}

.header-container {
    max-width:       1200px;
    margin:          0 auto;
    height:          80px;
    padding:         0 1.5rem;
    display:         flex;
    align-items:     center;
    justify-content: space-between;
}

.logo img {
    height: 40px;
    width:  auto;
}

.logo .logo-fallback {
    font-family: var( --f-head ), 'Inter', system-ui, sans-serif;
    font-size:   1.35rem;
    font-weight: 700;
    color:       var( --c-fafafa );
}

.blade-effect {
    position: relative;
    overflow: hidden;
}

.blade-effect::before {
    content:    '';
    position:   absolute;
    top:        0;
    left:       -100%;
    width:      100%;
    height:     100%;
    background: linear-gradient( 90deg, transparent, var( --c-8b5cf6-30 ), var( --c-a78bfa-50 ), transparent );
    transform:  skewX( -20deg );
    transition: left 500ms ease-in-out;
}

.blade-effect:hover::before { left: 100%; }

.nav-desktop {
    display:     none;
    align-items: center;
    gap:         0.5rem;
}

.nav-link {
    padding:       0.5rem 1rem;
    border-radius: 0.75rem;
    font-weight:   500;
    color:         var( --c-fafafa );
    transition:    color 300ms ease;
}

.nav-link:hover { color: var( --c-a78bfa ); }

.mobile-menu-btn {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    width:           44px;
    height:          44px;
    background:      transparent;
    border:          1px solid var( --c-2a2438 );
    border-radius:   0.75rem;
    color:           var( --c-fafafa );
    cursor:          pointer;
    transition:      border-color 300ms ease, color 300ms ease;
}

.mobile-menu-btn:hover {
    border-color: var( --c-8b5cf6 );
    color:        var( --c-a78bfa );
}

.nav-mobile {
    display:                 flex;
    flex-direction:          column;
    padding:                 1rem 1.5rem 1.5rem;
    background-color:        var( --c-0a0a0f-95 );
    backdrop-filter:         blur( 12px );
    -webkit-backdrop-filter: blur( 12px );
    border-bottom:           1px solid var( --c-2a2438 );
}

.nav-link-mobile {
    padding:       0.875rem 0.5rem;
    font-weight:   500;
    color:         var( --c-fafafa );
    border-bottom: 1px solid var( --c-2a2438 );
    transition:    color 300ms ease, padding-left 300ms ease;
}

.nav-link-mobile:last-child { border-bottom: none; }

.nav-link-mobile:hover {
    color:        var( --c-a78bfa );
    padding-left: 1rem;
}

@media (min-width: 1024px) {
    .nav-desktop { display: flex; }

    .mobile-menu-btn { display: none; }

    .nav-mobile { display: none !important; }
}

.hero {
    position:         relative;
    min-height:       100vh;
    display:          flex;
    align-items:      center;
    justify-content:  center;
    overflow:         hidden;
    background-color: var( --bg-0 );
    padding:          0;
}

.hero-bg-gradient {
    position:   absolute;
    inset:      0;
    background: linear-gradient( 180deg, var( --c-1a0f33 ) 0%, var( --bg-0 ) 70% );
    z-index:    0;
}

.hero-radial-glow {
    position:       absolute;
    top:            50%;
    left:           50%;
    width:          820px;
    height:         820px;
    max-width:      120vw;
    max-height:     120vw;
    transform:      translate( -50%, -50% );
    background:     radial-gradient( circle, var( --c-8b5cf6-25 ) 0%, transparent 60% );
    z-index:        0;
    pointer-events: none;
}

.particles-container {
    position:       absolute;
    inset:          0;
    z-index:        1;
    pointer-events: none;
    overflow:       hidden;
}

.particle {
    position:      absolute;
    background:    var( --c-ffffff-50 );
    border-radius: 50%;
    opacity:       0;
    animation:     float-up linear infinite;
    box-shadow:    0 0 6px var( --c-8b5cf6-40 ), 0 0 12px var( --c-ffffff-20 );
}

.hero-content {
    position:              relative;
    z-index:               2;
    padding:               140px 0 120px;
    text-align:            left;
    display:               grid;
    grid-template-columns: 1fr 1fr;
    align-items:           center;
    gap:                   3rem;
}

.hero-text {
    display:        flex;
    flex-direction: column;
    align-items:    flex-start;
}

.hero-media {
    position:        relative;
    display:         flex;
    align-items:     center;
    justify-content: center;
}

.hero-text .hero-desc {
    margin-left:  0;
    margin-right: 0;
}

.hero-text .hero-actions { justify-content: flex-start; }

.hero-text .hero-stats {
    margin-left:  0;
    margin-right: 0;
}

.hero-media .video-container { margin: 0 auto; }

@media (max-width: 980px) {
    .hero-content {
        grid-template-columns: 1fr;
        gap:                   2.5rem;
        text-align:            center;
    }

    .hero-text { align-items: center; }

    .hero-text .hero-desc {
        margin-left:  auto;
        margin-right: auto;
    }

    .hero-text .hero-actions { justify-content: center; }

    .hero-text .hero-stats {
        margin-left:  auto;
        margin-right: auto;
    }
}

.hero-label {
    display:        inline-flex;
    align-items:    center;
    gap:            8px;
    padding:        6px 16px;
    background:     var( --c-blue-dim );
    border:         1px solid var( --c-00c2e8-20 );
    border-radius:  100px;
    font-size:      0.78rem;
    font-weight:    600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          var( --c-blue );
    margin-bottom:  1.5rem;
}

.hero-label span {
    width:         6px;
    height:        6px;
    background:    var( --c-blue );
    border-radius: 50%;
    animation:     blink 2000ms ease infinite;
}

.hero-title {
    font-size:      clamp( 2.4rem, 6vw, 4.2rem );
    font-weight:    700;
    line-height:    1.1;
    margin-bottom:  1.5rem;
    letter-spacing: -0.02em;
}

.hero-title .line-muted {
    color:       var( --text-2 );
    font-weight: 300;
}

.hero-typed { min-height: 3.5em; }

.type-cursor {
    display:                 inline-block;
    margin-left:             2px;
    color:                   var( --c-blue );
    font-weight:             300;
    -webkit-text-fill-color: var( --c-blue );
    animation:               type-blink 800ms step-end infinite;
}

@keyframes type-blink {
    0%, 100% { opacity: 1; }

    50% { opacity: 0; }
}

.hero-desc {
    font-size:   clamp( 1rem, 2vw, 1.15rem );
    color:       var( --text-2 );
    max-width:   600px;
    margin:      0 auto 2.5rem;
    line-height: 1.75;
}

.video-container {
    position:        relative;
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           100%;
    max-width:       560px;
    aspect-ratio:    1 / 1;
    margin:          0 auto 2.75rem;
}

.decorative-circles {
    position:       absolute;
    inset:          0;
    pointer-events: none;
}

.circle {
    position:      absolute;
    top:           50%;
    left:          50%;
    border:        1px solid var( --c-8b5cf6-15 );
    border-radius: 50%;
    transform:     translate( -50%, -50% );
}

.circle-1 {
    width:  30%;
    height: 30%;
}

.circle-2 {
    width:        45%;
    height:       45%;
    border-color: var( --c-8b5cf6-12 );
}

.circle-3 {
    width:        60%;
    height:       60%;
    border-color: var( --c-8b5cf6-10 );
}

.circle-4 {
    width:        75%;
    height:       75%;
    border-color: var( --c-8b5cf6-08 );
}

.circle-5 {
    width:        88%;
    height:       88%;
    border-color: var( --c-8b5cf6-06 );
}

.circle-6 {
    width:        100%;
    height:       100%;
    border-color: var( --c-8b5cf6-05 );
}

.circle-7 {
    width:        30%;
    height:       30%;
    border-style: dashed;
    border-color: var( --c-a78bfa-20 );
    animation:    rotate-slow 40000ms linear infinite;
}

.orbital-dot {
    position:      absolute;
    top:           50%;
    left:          50%;
    width:         8px;
    height:        8px;
    background:    var( --c-a78bfa );
    border-radius: 50%;
    box-shadow:    0 0 10px var( --c-a78bfa-80 );
    transform:     translate( -50%, -50% );
    opacity:       0.15;
}

.dot-top { top: 35%; }

.dot-bottom { top: 65%; }

.dot-left { left: 35%; }

.dot-right { left: 65%; }

.dot-diag-1 {
    top:  39%;
    left: 39%;
}

.dot-diag-2 {
    top:  39%;
    left: 61%;
}

.dot-diag-3 {
    top:  61%;
    left: 39%;
}

.dot-diag-4 {
    top:  61%;
    left: 61%;
}

.video-wrapper {
    position: relative;
    width:    95%;
    z-index:  2;
}

.video-wrapper video {
    width:  100%;
    height: auto;
}

.hero-actions {
    display:         flex;
    flex-wrap:       wrap;
    justify-content: center;
    gap:             1rem;
    margin-bottom:   3rem;
}

.hero-stats {
    display:               grid;
    grid-template-columns: repeat( 3, 1fr );
    gap:                   1.5rem;
    max-width:             480px;
    margin:                0 auto;
}

.hero-stat-num {
    font-family:             var( --f-head );
    font-size:               2rem;
    font-weight:             700;
    background:              var( --grad-primary );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip:         text;
    line-height:             1;
}

.hero-stat-label {
    font-size:  0.78rem;
    color:      var( --text-3 );
    margin-top: 4px;
}

.scroll-indicator {
    position:  absolute;
    bottom:    2rem;
    left:      50%;
    transform: translateX( -50% );
    z-index:   2;
}

.scroll-mouse {
    width:           26px;
    height:          42px;
    border:          2px solid var( --text-2 );
    border-radius:   14px;
    display:         flex;
    justify-content: center;
    padding-top:     8px;
}

.scroll-dot {
    width:         4px;
    height:        8px;
    background:    var( --c-a78bfa );
    border-radius: 2px;
    animation:     scroll-bounce 1500ms ease-in-out infinite;
}

.section-header {
    text-align:    center;
    margin-bottom: 3.5rem;
}

.empresa-cards {
    display:               grid;
    grid-template-columns: repeat( 4, 1fr );
    gap:                   1.5rem;
    margin-top:            4rem;
}

.empresa-card {
    background:      var( --bg-card );
    border:          1px solid var( --border );
    border-radius:   var( --r-lg );
    padding:         1.75rem;
    text-align:      center;
    transition:      border-color var( --dur ) var( --ease ), transform var( --dur ) var( --ease );
    backdrop-filter: blur( 12px );
}

.empresa-card:hover {
    border-color: var( --border-accent );
    transform:    translateY( -4px );
}

.empresa-card .num {
    font-family:             var( --f-head );
    font-size:               2.4rem;
    font-weight:             700;
    background:              var( --grad-primary );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip:         text;
    line-height:             1;
}

.empresa-card .desc {
    font-size:  0.85rem;
    color:      var( --text-2 );
    margin-top: 0.5rem;
}

.empresa-body {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   4rem;
    align-items:           center;
}

.empresa-text h2 { margin-bottom: 1rem; }

.empresa-text p {
    color:         var( --text-2 );
    margin-bottom: 1rem;
}

.empresa-features {
    display:        flex;
    flex-direction: column;
    gap:            0.75rem;
    margin-top:     1.5rem;
}

.empresa-feature {
    display:     flex;
    align-items: center;
    gap:         10px;
    font-size:   0.9rem;
    color:       var( --text-2 );
}

.empresa-feature svg {
    width:       18px;
    height:      18px;
    stroke:      var( --c-blue );
    flex-shrink: 0;
}

.empresa-image {
    position:        relative;
    border-radius:   var( --r-lg );
    overflow:        hidden;
    background:      var( --bg-2 );
    aspect-ratio:    4/3;
    display:         flex;
    align-items:     center;
    justify-content: center;
}

.empresa-image img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

.empresa-image::before {
    content:       '';
    position:      absolute;
    inset:         0;
    border:        1px solid var( --border );
    border-radius: var( --r-lg );
    z-index:       1;
}

.servicos-grid {
    display:               grid;
    grid-template-columns: repeat( 3, 1fr );
    gap:                   1.5rem;
}

.servico-card {
    background:      var( --bg-card );
    border:          1px solid var( --border );
    border-radius:   var( --r-lg );
    padding:         2rem;
    transition:      border-color var( --dur ) var( --ease ), transform var( --dur ) var( --ease ), box-shadow var( --dur ) var( --ease );
    backdrop-filter: blur( 12px );
}

.servico-card:hover {
    border-color: var( --border-accent );
    transform:    translateY( -5px );
    box-shadow:   0 12px 40px var( --c-00c2e8-08 );
}

.servico-card h3 {
    font-size:     1.1rem;
    font-weight:   600;
    margin-bottom: 0.6rem;
}

.servico-card p {
    font-size:   0.88rem;
    color:       var( --text-2 );
    line-height: 1.65;
}

.produtos-grid {
    display:               grid;
    grid-template-columns: repeat( 3, 1fr );
    gap:                   1.5rem;
}

.produto-card {
    background:      var( --bg-card );
    border:          1px solid var( --border );
    border-radius:   var( --r-lg );
    overflow:        hidden;
    transition:      border-color var( --dur ) var( --ease ), transform var( --dur ) var( --ease ), box-shadow var( --dur ) var( --ease );
    backdrop-filter: blur( 12px );
}

.produto-card:hover {
    border-color: var( --border-accent );
    transform:    translateY( -5px );
    box-shadow:   0 12px 40px var( --c-00c2e8-08 );
}

.produto-thumb {
    aspect-ratio:    16/9;
    background:      var( --bg-2 );
    display:         flex;
    align-items:     center;
    justify-content: center;
    border-bottom:   1px solid var( --border );
}

.produto-thumb svg {
    width:   56px;
    height:  56px;
    stroke:  var( --text-3 );
    opacity: 0.4;
}

.produto-thumb img {
    width:      100%;
    height:     100%;
    object-fit: cover;
}

.produto-body { padding: 1.5rem; }

.produto-body h3 {
    font-size:     1rem;
    font-weight:   600;
    margin-bottom: 0.4rem;
}

.produto-body p {
    font-size:     0.85rem;
    color:         var( --text-2 );
    line-height:   1.6;
    margin-bottom: 1rem;
}

.produto-tags {
    display:   flex;
    flex-wrap: wrap;
    gap:       6px;
}

.faq-list {
    max-width: 800px;
    margin:    0 auto;
}

.faq-item {
    border:        1px solid var( --border );
    border-radius: var( --r-md );
    margin-bottom: 0.75rem;
    overflow:      hidden;
    transition:    border-color var( --dur ) var( --ease );
}

.faq-item.open { border-color: var( --border-accent ); }

.faq-question {
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    width:           100%;
    padding:         1.25rem 1.5rem;
    background:      var( --bg-card );
    border:          none;
    text-align:      left;
    font-family:     var( --f-body );
    font-size:       0.95rem;
    font-weight:     500;
    color:           var( --text-1 );
    cursor:          pointer;
    transition:      background var( --dur ) var( --ease );
}

.faq-question:hover { background: var( --c-ffffff-03 ); }

.faq-icon {
    flex-shrink:     0;
    width:           22px;
    height:          22px;
    border:          1px solid var( --border );
    border-radius:   50%;
    display:         flex;
    align-items:     center;
    justify-content: center;
    transition:      transform var( --dur ) var( --ease ), border-color var( --dur ) var( --ease ), background var( --dur ) var( --ease );
}

.faq-icon svg {
    width:      12px;
    height:     12px;
    stroke:     var( --text-2 );
    transition: stroke var( --dur ) var( --ease );
}

.faq-item.open .faq-icon {
    transform:    rotate( 45deg );
    background:   var( --c-blue-dim );
    border-color: var( --c-blue );
}

.faq-item.open .faq-icon svg { stroke: var( --c-blue ); }

.faq-answer {
    max-height: 0;
    overflow:   hidden;
    transition: max-height 400ms var( --ease );
}

.faq-answer-inner {
    padding:     0 1.5rem 1.25rem;
    font-size:   0.9rem;
    color:       var( --text-2 );
    line-height: 1.7;
    background:  var( --bg-card );
}

.contato-wrapper {
    display:               grid;
    grid-template-columns: 1fr 1.6fr;
    gap:                   4rem;
    align-items:           start;
}

.contato-info h2 { margin-bottom: 1rem; }

.contato-info p {
    color:         var( --text-2 );
    margin-bottom: 2rem;
}

.contato-items {
    display:        flex;
    flex-direction: column;
    gap:            1.25rem;
}

.contato-item {
    display:     flex;
    align-items: flex-start;
    gap:         1rem;
}

.contato-item-icon {
    width:           44px;
    height:          44px;
    flex-shrink:     0;
    background:      var( --c-blue-dim );
    border:          1px solid var( --c-00c2e8-15 );
    border-radius:   var( --r-sm );
    display:         flex;
    align-items:     center;
    justify-content: center;
}

.contato-item-icon svg {
    width:  20px;
    height: 20px;
    stroke: var( --c-blue );
}

.contato-item-label {
    font-size:      0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color:          var( --text-3 );
    margin-bottom:  2px;
}

.contato-item-value {
    font-size: 0.95rem;
    color:     var( --text-1 );
}

.contato-form-wrap {
    background:      var( --bg-card );
    border:          1px solid var( --border );
    border-radius:   var( --r-lg );
    padding:         2.5rem;
    backdrop-filter: blur( 12px );
}

.form-row {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   1rem;
}

.form-group {
    display:        flex;
    flex-direction: column;
    gap:            6px;
    margin-bottom:  1.25rem;
}

.form-group.full { grid-column: 1 / -1; }

.form-label {
    font-size:      0.82rem;
    font-weight:    500;
    color:          var( --text-2 );
    letter-spacing: 0.02em;
}

.form-control-nx {
    width:         100%;
    background:    var( --c-ffffff-03 );
    border:        1px solid var( --border );
    border-radius: var( --r-sm );
    padding:       12px 16px;
    color:         var( --text-1 );
    font-family:   var( --f-body );
    font-size:     0.9rem;
    transition:    border-color var( --dur ) var( --ease ), background var( --dur ) var( --ease );
}

.form-control-nx:focus {
    outline:      none;
    border-color: var( --c-blue );
    background:   var( --c-00c2e8-04 );
}

.form-control-nx::placeholder { color: var( --text-3 ); }

textarea.form-control-nx {
    resize:     vertical;
    min-height: 120px;
}

.form-feedback {
    padding:       12px 16px;
    border-radius: var( --r-sm );
    font-size:     0.88rem;
    font-weight:   500;
    margin-bottom: 1.25rem;
    display:       none;
}

.form-feedback.success {
    background: var( --c-10b981-10 );
    border:     1px solid var( --c-10b981-30 );
    color:      var( --c-34d399 );
}

.form-feedback.error {
    background: var( --c-ef4444-10 );
    border:     1px solid var( --c-ef4444-30 );
    color:      var( --c-f87171 );
}

.recaptcha-note {
    font-size:  0.72rem;
    color:      var( --text-3 );
    margin-top: 1rem;
    text-align: center;
}

.recaptcha-note a {
    color:           var( --text-3 );
    text-decoration: underline;
}

.site-footer {
    background: var( --bg-1 );
    border-top: 1px solid var( --border );
    padding:    80px 0 40px;
}

.footer-grid {
    display:               grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap:                   3rem;
    margin-bottom:         4rem;
}

.footer-brand img {
    height:        36px;
    width:         auto;
    margin-bottom: 1rem;
}

.footer-brand .brand-name {
    font-family:             var( --f-head );
    font-size:               1.25rem;
    font-weight:             700;
    background:              var( --grad-primary );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip:         text;
    margin-bottom:           0.75rem;
}

.footer-brand p {
    font-size:   0.87rem;
    color:       var( --text-2 );
    line-height: 1.7;
    max-width:   260px;
}

.footer-col h3 {
    font-size:      0.82rem;
    font-weight:    600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color:          var( --text-3 );
    margin-bottom:  1.25rem;
}

.footer-col ul {
    display:        flex;
    flex-direction: column;
    gap:            0.6rem;
}

.footer-col ul a {
    font-size:  0.88rem;
    color:      var( --text-2 );
    transition: color var( --dur ) var( --ease );
}

.footer-col ul a:hover { color: var( --text-1 ); }

.footer-social {
    display:    flex;
    gap:        0.75rem;
    margin-top: 1.5rem;
}

.social-btn {
    width:           38px;
    height:          38px;
    border-radius:   var( --r-sm );
    background:      var( --c-ffffff-04 );
    border:          1px solid var( --border );
    display:         flex;
    align-items:     center;
    justify-content: center;
    transition:      background var( --dur ) var( --ease ), border-color var( --dur ) var( --ease );
}

.social-btn:hover {
    background:   var( --c-blue-dim );
    border-color: var( --c-blue );
}

.social-btn svg {
    width:      16px;
    height:     16px;
    stroke:     var( --text-2 );
    transition: stroke var( --dur ) var( --ease );
}

.social-btn:hover svg { stroke: var( --c-blue ); }

.footer-bottom {
    border-top:      1px solid var( --border );
    padding-top:     2rem;
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    gap:             1rem;
    flex-wrap:       wrap;
}

.footer-bottom p {
    font-size: 0.82rem;
    color:     var( --text-3 );
}

.footer-bottom-links {
    display: flex;
    gap:     1.5rem;
}

.footer-bottom-links a {
    font-size: 0.82rem;
    color:     var( --text-3 );
}

.footer-bottom-links a:hover { color: var( --text-1 ); }

.animate-in {
    opacity:    0;
    transform:  translateY( 24px );
    transition: opacity 600ms var( --ease ), transform 600ms var( --ease );
}

.animate-in.visible {
    opacity:   1;
    transform: translateY( 0 );
}

.animate-in.delay-1 { transition-delay: 100ms; }

.animate-in.delay-2 { transition-delay: 200ms; }

.animate-in.delay-3 { transition-delay: 300ms; }

.animate-in.delay-4 { transition-delay: 400ms; }

.animate-in.delay-5 { transition-delay: 500ms; }

@keyframes ring-pulse {
    0%, 100% { opacity: 0.12; }

    50% { opacity: 0.22; }
}

@keyframes symbol-float {
    0%, 100% { transform: translateY( -50% ) translateY( 0px ); }

    50% { transform: translateY( -50% ) translateY( -14px ); }
}

@keyframes blink {
    0%, 100% { opacity: 1; }

    50% { opacity: 0.2; }
}

@keyframes scroll-down {
    0% {
        transform:        scaleY( 0 );
        transform-origin: top;
    }

    50% {
        transform:        scaleY( 1 );
        transform-origin: top;
    }

    51% {
        transform:        scaleY( 1 );
        transform-origin: bottom;
    }

    100% {
        transform:        scaleY( 0 );
        transform-origin: bottom;
    }
}

@keyframes float-up {
    0% {
        transform: translateY( 0 ) scale( 0.5 );
        opacity:   0;
    }

    5% {
        opacity:   0.4;
        transform: translateY( 0 ) scale( 1 );
    }

    95% { opacity: 0.4; }

    100% {
        transform: translateY( -120vh ) scale( 1 );
        opacity:   0;
    }
}

@keyframes scale-in {
    from {
        opacity:   0;
        transform: scale( 0.85 );
    }

    to {
        opacity:   1;
        transform: scale( 1 );
    }
}

@keyframes rotate-slow {
    from { transform: translate( -50%, -50% ) rotate( 0deg ); }

    to { transform: translate( -50%, -50% ) rotate( 360deg ); }
}

@keyframes scroll-bounce {
    0%, 100% { transform: translateY( 0 ); }

    50% { transform: translateY( 10px ); }
}

.animate-scale-in { animation: scale-in 1000ms ease-out both; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration:        0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration:       0.01ms !important;
    }

    html { scroll-behavior: auto; }

    .animate-in {
        opacity:   1;
        transform: none;
    }
}

@media (max-width: 1200px) {
    .empresa-cards { grid-template-columns: repeat( 2, 1fr ); }

    .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
    .video-container { max-width: 340px; }
}

@media (max-width: 1024px) {
    .servicos-grid, .produtos-grid { grid-template-columns: repeat( 2, 1fr ); }

    .empresa-body {
        grid-template-columns: 1fr;
        gap:                   2.5rem;
    }

    .empresa-image { display: none; }

    .contato-wrapper {
        grid-template-columns: 1fr;
        gap:                   2.5rem;
    }
}

@media (max-width: 900px) {
    .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    section { padding: 72px 0; }

    .servicos-grid, .produtos-grid { grid-template-columns: 1fr; }

    .empresa-cards { grid-template-columns: repeat( 2, 1fr ); }

    .form-row { grid-template-columns: 1fr; }

    .footer-grid {
        grid-template-columns: 1fr;
        gap:                   2rem;
    }

    .footer-bottom {
        flex-direction: column;
        text-align:     center;
    }

    .hero-title { font-size: clamp( 2rem, 8vw, 2.8rem ); }

    .hero-stats {
        grid-template-columns: repeat( 3, 1fr );
        max-width:             100%;
    }

    .contato-form-wrap { padding: 1.5rem; }
}

@media (max-width: 480px) {
    section { padding: 56px 0; }

    .empresa-cards { grid-template-columns: 1fr 1fr; }

    .hero-actions { flex-direction: column; }

    .hero-actions a {
        width:           100%;
        justify-content: center;
        text-align:      center;
    }

    .hero-stats {
        grid-template-columns: repeat( 3, 1fr );
        gap:                   1rem;
    }

    .hero-stat-num { font-size: 1.5rem; }

    .section-title { font-size: 1.7rem; }
}

@media (max-width: 375px) {
    .hero-title { font-size: 1.85rem; }

    .empresa-cards { grid-template-columns: 1fr; }
}

@media (min-width: 1920px) {
    .container { max-width: 1440px; }

    .hero-content { padding: 180px 0 160px; }

    .section-title { font-size: 3.2rem; }
}