/* ==========================================================================
   GestãoMIT — Estilos globais adaptados do template React/TS
   ========================================================================== */

:root {
    --color-dark-teal: #142E30;
    --color-vibrant-green: #18a968;
    --color-teal-green: #1AA170;
    --color-bright-mint: #1ED189;
    --color-deep-navy: #09090b;
    --color-navy-surface: #121815;
    --color-slate-border: #1f2e26;
    --color-silver-muted: #A0A3A7;
    --light-bg: #FFFFFF;
    --light-border: #B2C5C9;
}

* {
    font-family: 'DM Sans', sans-serif !important;
}

body {
    background-color: #09090b;
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    transition: background-color 0.25s ease, color 0.25s ease;
    margin: 0;
    scroll-behavior: smooth;
    overflow-x: clip;
}

html {
    overflow-x: clip;
}

#gestaomit-full-banner {
    overflow-x: clip;
    max-width: 100%;
}

html.dark #gestaomit-full-banner,
html.dark .bg-gmit-dark,
html.dark #hero-section,
html.dark #top-announcement-bar,
html.dark #main-navbar,
html.dark #mobile-menu,
html.dark #footer-section,
[data-theme="dark"] #gestaomit-full-banner,
[data-theme="dark"] .bg-gmit-dark,
[data-theme="dark"] #hero-section,
[data-theme="dark"] #top-announcement-bar,
[data-theme="dark"] #main-navbar,
[data-theme="dark"] #mobile-menu,
[data-theme="dark"] #footer-section {
    background-color: var(--color-deep-navy);
}

html.dark .navbar-glass,
[data-theme="dark"] .navbar-glass {
    background-color: var(--color-deep-navy);
}

/* Compensa navbar sticky ao rolar para âncoras */
section[id] {
    scroll-margin-top: 5.5rem;
}

/* ==========================================================================
   RESPONSIVIDADE GLOBAL — notebook, tablet, mobile e monitores grandes
   ========================================================================== */

.gmit-section {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

@media (min-width: 640px) {
    .gmit-section { padding-top: 4rem; padding-bottom: 4rem; }
}

@media (min-width: 1024px) {
    .gmit-section { padding-top: 5rem; padding-bottom: 5rem; }
}

@media (min-width: 1536px) {
    .gmit-section { padding-top: 7rem; padding-bottom: 7rem; }
}

.gmit-heading {
    font-size: clamp(1.75rem, 1.6vw + 1.1rem, 3rem);
    line-height: 1.15;
}

.gmit-display {
    font-weight: 500;
    letter-spacing: -0.035em;
    color: #f5f4ec;
}

.gmit-accent {
    font-family: "Playfair Display", Georgia, serif !important;
    font-style: italic;
    font-weight: 700;
    font-size: 1.06em;
    letter-spacing: -0.02em;
    color: #1ED189;
    line-height: 1;
}

.methodology-quote {
    font-family: "Playfair Display", Georgia, serif !important;
    font-style: italic;
    font-weight: 500;
    font-size: clamp(1.15rem, 0.6vw + 0.95rem, 1.55rem);
    letter-spacing: -0.02em;
    line-height: 1.35;
    color: #f5f4ec;
}

.gmit-heading-xl {
    font-size: clamp(1.875rem, 2.2vw + 0.9rem, 3.75rem);
    line-height: 1.1;
}

.gmit-container {
    width: 100%;
    max-width: 80rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.gmit-container-wide {
    width: 100%;
    max-width: 80rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

@media (min-width: 640px) {
    .gmit-container,
    .gmit-container-wide { padding-left: 1.5rem; padding-right: 1.5rem; }
}

@media (min-width: 1024px) {
    .gmit-container,
    .gmit-container-wide { padding-left: 2rem; padding-right: 2rem; }
}

@media (min-width: 1536px) {
    .gmit-container-wide { max-width: 105rem; }
}

#hero-section {
    --hero-header-offset: 7.5rem;
    padding: 0;
}

@media (min-width: 768px) {
    #hero-section.hero-v2 {
        min-height: calc(100svh - var(--hero-header-offset));
        min-height: calc(100dvh - var(--hero-header-offset));
    }
}

/* ==========================================================================
   Hero v2 — layout Conta Azul / cores GestãoMIT
   ========================================================================== */
.hero-v2 {
    position: relative;
    background: #09090b;
    display: block;
    isolation: isolate;
}

.hero-v2-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
    background:
        radial-gradient(ellipse 50% 45% at 78% 40%, rgba(24, 169, 104, 0.16) 0%, transparent 58%),
        radial-gradient(ellipse 40% 35% at 12% 80%, rgba(30, 209, 137, 0.06) 0%, transparent 55%),
        #09090b;
}

.hero-v2-orb {
    display: none;
}

.hero-v2-orb--a { width: 28rem; height: 28rem; right: 8%; top: 4%; opacity: 0.55; }
.hero-v2-orb--b { width: 16rem; height: 16rem; right: 28%; bottom: 10%; opacity: 0.35; }
.hero-v2-orb--c { width: 10rem; height: 10rem; right: 42%; top: 28%; opacity: 0.28; }

/* Foto hero — pessoa à direita com brilho, fade para o texto (estilo Conta Azul) */
.hero-v2-photo {
    position: absolute;
    z-index: 1;
    inset: auto 0 0 0;
    width: 100%;
    height: 46%;
    pointer-events: none;
    overflow: hidden;
}

.hero-v2-photo::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(to bottom, #09090b 0%, rgba(9, 9, 11, 0.35) 22%, transparent 46%);
}

@media (min-width: 1024px) {
    .hero-v2-photo {
        inset: 0 0 0 auto;
        width: 58%;
        height: 100%;
    }

    .hero-v2-photo::before {
        background: linear-gradient(
            to right,
            #09090b 0%,
            rgba(9, 9, 11, 0.88) 16%,
            transparent 46%
        );
    }
}

.hero-v2-photo-img {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 68% 62%;
}

@media (min-width: 1024px) {
    .hero-v2-photo-img {
        object-position: right center;
    }
}

.hero-v2-wm-wrap {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    overflow: hidden;
}

.hero-v2-wm-wrap--hidden {
    display: none !important;
    visibility: hidden;
    pointer-events: none;
}

#hero-watermark.hero-v2-wm,
.hero-v2-wm {
    font-size: clamp(5rem, 20vw, 18rem);
    font-weight: 900;
    letter-spacing: 0.02em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    color: rgba(13, 59, 40, 0.28);
    user-select: none;
    transition: opacity 1s ease-out, transform 1s ease-out, filter 1s ease-out;
    mask-image: none;
    -webkit-mask-image: none;
    padding: 0;
    overflow: visible;
    position: static;
    z-index: auto;
}

#hero-watermark.hero-v2-wm.hidden-load,
.hero-v2-wm.hidden-load {
    opacity: 0;
    filter: blur(14px);
    transform: scale(0.98);
}

#hero-watermark.hero-v2-wm:not(.hidden-load),
.hero-v2-wm:not(.hidden-load) {
    opacity: 1;
    filter: none;
    transform: none;
}

.hero-v2-shell {
    position: relative;
    z-index: 2;
    width: 100%;
}

.hero-v2-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    align-items: center;
    padding-top: 1.75rem;
    padding-bottom: 44%;
}

@media (max-width: 1023px) {
    .hero-v2-layout {
        padding-bottom: 17rem;
    }

    .hero-v2-photo {
        height: 17rem;
    }
}

@media (min-width: 1024px) {
    .hero-v2-layout {
        position: relative;
        grid-template-columns: minmax(0, 32rem);
        justify-content: start;
        gap: 0;
        min-height: calc(100svh - var(--hero-header-offset));
        min-height: calc(100dvh - var(--hero-header-offset));
        padding-top: 1.25rem;
        padding-bottom: 0;
        align-items: center;
    }
}

.hero-v2-copy {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 1.15rem;
    width: 100%;
    max-width: 32rem;
    padding-bottom: 1.5rem;
}

@media (min-width: 1024px) {
    .hero-v2-copy {
        padding-bottom: 0;
        max-width: 29.5rem;
    }
}

.hero-v2-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: #f3e6d4;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.hero-v2-badge-dot {
    width: 0.38rem;
    height: 0.38rem;
    border-radius: 999px;
    background: #1ED189;
    box-shadow: 0 0 0 3px rgba(30, 209, 137, 0.2);
}

.hero-v2-title {
    margin: 0;
    font-family: "DM Sans", sans-serif;
    font-size: clamp(2.7rem, 4.4vw + 0.3rem, 4.5rem);
    line-height: 0.98;
    font-weight: 500;
    letter-spacing: -0.035em;
    color: #f5f4ec;
}

.hero-v2-accent,
.hero-v2-accent .hero-v2-typed,
.hero-v2-accent .hero-v2-typed-sizer,
.hero-v2-accent .hero-v2-typed-live {
    font-family: "Playfair Display", Georgia, serif !important;
    font-style: italic;
    font-weight: 700;
}

.hero-v2-accent {
    position: relative;
    display: inline-block;
    font-size: 1.06em;
    letter-spacing: -0.02em;
    color: #1ED189;
    white-space: nowrap;
}

.hero-v2-typed-sizer {
    visibility: hidden;
    white-space: nowrap;
}

.hero-v2-typed-live {
    position: absolute;
    left: 0;
    top: 0;
    display: inline-flex;
    align-items: flex-end;
    height: 100%;
    padding-bottom: 0.08em;
    white-space: nowrap;
}

.hero-v2-caret {
    display: inline-block;
    width: 0.055em;
    min-width: 3px;
    height: 0.78em;
    margin-left: 0.05em;
    border-radius: 2px;
    background: currentColor;
    animation: hero-caret-blink 1.05s steps(1, end) infinite;
}

@keyframes hero-caret-blink {
    0%, 49% { opacity: 1; }
    50%, 100% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .hero-v2-caret { animation: none; }
}

.hero-v2-lead {
    margin: 0;
    max-width: 28rem;
    font-family: "DM Sans", sans-serif;
    font-size: 0.98rem;
    font-weight: 400;
    line-height: 1.55;
    color: #f3eee6;
}

.hero-v2-note {
    margin: 0;
    max-width: 26rem;
    font-family: "DM Sans", sans-serif;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    line-height: 1.6;
    color: #cbbba8;
}

.hero-v2-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.7rem;
    margin-top: 0.35rem;
}

.hero-v2-btn {
    border-radius: 999px;
    padding: 0.72rem 1.25rem;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.hero-v2-btn--ghost {
    background: transparent;
    color: #f7f1e8;
    border: 1px solid rgba(247, 241, 232, 0.38);
}

.hero-v2-btn--ghost:hover {
    border-color: rgba(247, 241, 232, 0.7);
    background: rgba(247, 241, 232, 0.06);
}

.hero-v2-btn--solid {
    background: #f4efe6;
    color: #1a1612;
    border: 1px solid #f4efe6;
}

.hero-v2-btn--solid:hover {
    background: #fff;
}

.hero-v2-features {
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem 1.35rem;
    width: 100%;
}

.hero-v2-features li {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.045em;
    text-transform: uppercase;
    color: #ffffff;
    line-height: 1.25;
}

.hero-v2-plus {
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 0.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
}

.hero-v2-plus--a { color: #1ED189; background: rgba(30, 209, 137, 0.14); }
.hero-v2-plus--b { color: #FACC15; background: rgba(250, 204, 21, 0.14); }
.hero-v2-plus--c { color: #FB923C; background: rgba(249, 115, 22, 0.14); }
.hero-v2-plus--d { color: #38BDF8; background: rgba(56, 189, 248, 0.14); }

.hero-v2-cta {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 26.5rem;
    margin-top: 0.35rem;
    padding: 0.3rem 0.3rem 0.3rem 1.1rem;
    border-radius: 9999px;
    background: #ffffff;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.4);
}

.hero-v2-cta-input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #0f172a;
    font: inherit;
    font-size: 0.9375rem;
    padding: 0.7rem 0.55rem;
}

.hero-v2-cta-input::placeholder { color: #94a3b8; }

.hero-v2-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    flex-shrink: 0;
    border: 0;
    cursor: pointer;
    border-radius: 9999px;
    padding: 0.75rem 1.15rem;
    font: inherit;
    font-size: 0.875rem;
    font-weight: 700;
    color: #09090b;
    background: linear-gradient(135deg, #1ED189 0%, #18a968 100%);
    box-shadow: 0 0 28px rgba(34, 181, 115, 0.45);
    transition: filter 0.15s ease, transform 0.15s ease;
}

.hero-v2-cta-btn:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
}

.hero-v2-cta-btn i {
    width: 1rem;
    height: 1rem;
}

.hero-v2-legal {
    margin: 0;
    max-width: 26.5rem;
    font-size: 0.6875rem;
    line-height: 1.45;
    color: #64748b;
}

.hero-v2-legal a {
    color: #94a3b8;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.hero-v2-legal a:hover { color: #1ED189; }

.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;
}

html.light .hero-v2,
[data-theme="light"] .hero-v2 {
    background: #ffffff;
}

html.light .hero-v2-bg,
[data-theme="light"] .hero-v2-bg {
    background:
        radial-gradient(ellipse 55% 50% at 82% 48%, rgba(24, 169, 104, 0.12) 0%, transparent 60%),
        #ffffff;
}

html.light .hero-v2-photo::before,
[data-theme="light"] .hero-v2-photo::before {
    background: linear-gradient(to bottom, #ffffff 0%, rgba(255, 255, 255, 0.35) 22%, transparent 46%);
}

@media (min-width: 1024px) {
    html.light .hero-v2-photo,
    [data-theme="light"] .hero-v2-photo {
        inset: 0 0 0 auto;
        width: 58%;
        height: 100%;
    }

    html.light .hero-v2-photo::before,
    [data-theme="light"] .hero-v2-photo::before {
        background: linear-gradient(to right, #ffffff 0%, rgba(255, 255, 255, 0.88) 16%, transparent 46%);
    }
}

html.light .hero-v2-title,
[data-theme="light"] .hero-v2-title {
    color: #1a1612;
}

html.light .hero-v2-accent,
[data-theme="light"] .hero-v2-accent,
html.light .gmit-accent,
[data-theme="light"] .gmit-accent {
    color: #18a968;
}

html.light .gmit-display,
[data-theme="light"] .gmit-display,
html.light .methodology-quote,
[data-theme="light"] .methodology-quote {
    color: #1a1612;
}

html.light .hero-v2-badge,
[data-theme="light"] .hero-v2-badge {
    background: transparent;
    color: #6b5a45;
}

html.light .hero-v2-lead,
[data-theme="light"] .hero-v2-lead {
    color: #3f3a34;
}

html.light .hero-v2-note,
[data-theme="light"] .hero-v2-note {
    color: #6b645c;
}

html.light .hero-v2-btn--ghost,
[data-theme="light"] .hero-v2-btn--ghost {
    color: #1a1612;
    border-color: rgba(26, 22, 18, 0.35);
}

html.light .hero-v2-btn--solid,
[data-theme="light"] .hero-v2-btn--solid {
    background: #1a1612;
    color: #f7f1e8;
    border-color: #1a1612;
}

html.light .hero-v2-wm,
[data-theme="light"] .hero-v2-wm {
    color: rgba(24, 169, 104, 0.1);
}

#ecosystem-canvas,
.ecosystem-canvas {
    height: clamp(360px, 72vh, 520px);
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
}

#ecosystem-canvas.is-dragging,
.ecosystem-canvas.is-dragging {
    cursor: grabbing;
}

#ecossistema-section.is-locked .ecosystem-toolbar {
    display: none;
}

#ecossistema-section.is-locked .ecosystem-canvas,
#ecossistema-section.is-locked .ecosystem-canvas.is-dragging {
    cursor: default;
}

@media (min-width: 640px) {
    #ecosystem-canvas,
    .ecosystem-canvas {
        height: 660px;
    }
}

/* Hero — tipografia legado (não aplica ao hero v2) */
#hero-copy:not(.hero-v2-layout) h1 {
    font-size: clamp(1.5rem, 1.2vw + 0.85rem, 2.25rem);
    line-height: 1.2;
}

#hero-copy:not(.hero-v2-layout) .hero-subtitle {
    font-size: clamp(0.8125rem, 0.35vw + 0.72rem, 0.9375rem);
    line-height: 1.45;
}

#hero-copy:not(.hero-v2-layout) .hero-body-copy {
    font-size: clamp(0.6875rem, 0.2vw + 0.62rem, 0.8125rem);
    line-height: 1.55;
}

#hero-copy:not(.hero-v2-layout) .hero-side-title {
    font-size: clamp(0.75rem, 0.25vw + 0.65rem, 0.8125rem);
}

#hero-copy:not(.hero-v2-layout) .hero-highlight-link span {
    font-size: clamp(0.6875rem, 0.2vw + 0.62rem, 0.8125rem);
}

#ecossistema-section .ecosystem-section-title {
    font-size: clamp(1.75rem, 1.8vw + 0.85rem, 2.75rem);
    line-height: 1.15;
}

#numeros-section .numbers-stat-value {
    font-size: clamp(1.125rem, 1.2vw + 0.65rem, 2rem);
    line-height: 1;
}

#numeros-section .numbers-stat-suffix {
    font-size: clamp(0.6875rem, 0.3vw + 0.55rem, 0.875rem);
}

@media (max-width: 1279px) {
    .nav-link { font-size: 0.8125rem; }
    #main-navbar .navbar-brand-text { font-size: 1.25rem; }
    [data-access-system] { padding: 0.5rem 0.875rem; font-size: 0.75rem; }
    .solution-card { padding: 1.25rem 1.35rem; }
    .solution-card .solution-card-title { font-size: 1.25rem !important; }
    #ecossistema-section .ecosystem-title-badge {
        font-size: inherit;
        padding: 0.25rem 1rem;
    }
}

@media (max-width: 1279px) {
    .hero-grid { grid-template-columns: 1fr !important; }
    .hero-center-spacer { display: none !important; }
    .hero-col-right { align-items: flex-start !important; text-align: left !important; }
    .hero-highlight-link { text-align: left !important; }
}

@media (max-width: 639px) {
    #main-navbar .navbar-brand-text { font-size: 1.125rem; }
    [data-access-system] span.nav-access-label { display: none; }
    [data-access-system] { padding: 0.5rem; }
    .numbers-stats-grid { gap: 0.5rem; }
    .numbers-pills-label { white-space: normal; text-align: center; }

    #hero-watermark-wrap {
        align-items: flex-start;
        justify-content: center;
        padding-top: 2.75rem;
    }

    #hero-copy-wrap {
        padding-top: 3.75rem;
    }

    /* Hero v2: sem padding extra legado no mobile */
    #hero-section.hero-v2 #hero-watermark-wrap.hero-v2-wm-wrap,
    #hero-section.hero-v2 .hero-v2-wm-wrap {
        align-items: center;
        padding-top: 0;
    }

    #hero-section.hero-v2 #hero-copy-wrap.hero-v2-shell,
    #hero-section.hero-v2 .hero-v2-shell {
        padding-top: 0;
    }

    #hero-watermark,
    .hero-watermark {
        font-size: clamp(3.75rem, 26vw, 8.5rem);
        letter-spacing: 0.02em;
        color: rgba(24, 169, 104, 0.32);
        -webkit-mask-image: linear-gradient(
            to right,
            transparent 0%,
            rgba(0, 0, 0, 0.45) 2%,
            #000 8%,
            #000 92%,
            rgba(0, 0, 0, 0.45) 98%,
            transparent 100%
        );
        mask-image: linear-gradient(
            to right,
            transparent 0%,
            rgba(0, 0, 0, 0.45) 2%,
            #000 8%,
            #000 92%,
            rgba(0, 0, 0, 0.45) 98%,
            transparent 100%
        );
    }
}

/* Pills de projetos — scroll horizontal no celular */
.numbers-projects-block {
    width: 100%;
    min-width: 0;
}

.project-pills-track {
    position: relative;
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.project-pills-track::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 2rem;
    pointer-events: none;
    background: linear-gradient(to left, rgba(18, 24, 21, 0.95), transparent);
}

html.light .project-pills-track::after,
[data-theme="light"] .project-pills-track::after {
    background: linear-gradient(to left, rgba(255, 255, 255, 0.95), transparent);
}

#project-pills.project-pills-scroll,
.project-pills-scroll {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    padding: 0.15rem 0;
    margin: 0;
}

#project-pills.project-pills-scroll .project-pill,
.project-pills-scroll .project-pill {
    scroll-snap-align: start;
}

/* ── Utilitários de tema ── */
.border-gmit-border { border-color: #1f2e26; }
.bg-gmit-dark { background-color: #09090b; }
.bg-gmit-surface { background-color: #121815; }
.text-gmit-white { color: #FFFFFF; }
.text-gmit-muted { color: #A0A3A7; }

/* ==========================================================================
   LIGHT MODE — overrides completos (adaptado do template index.css)
   ========================================================================== */

html.light body,
body.light,
[data-theme="light"] body {
    background-color: #FFFFFF !important;
    color: #09090b !important;
}

html.light .bg-gmit-dark,
html.light #hero-section,
html.light #gestaomit-full-banner,
html.light #footer-section,
[data-theme="light"] .bg-gmit-dark,
[data-theme="light"] #hero-section,
[data-theme="light"] #gestaomit-full-banner,
[data-theme="light"] #footer-section {
    background-color: #FFFFFF !important;
}

html.light .bg-gmit-surface,
[data-theme="light"] .bg-gmit-surface {
    background-color: #FFFFFF !important;
}

html.light .bg-\[\#09090b\],
html.light .bg-\[\#051C18\],
[data-theme="light"] .bg-\[\#09090b\],
[data-theme="light"] .bg-\[\#051C18\] {
    background-color: #FFFFFF !important;
}

html.light .bg-\[\#09090b\]\/90,
html.light .bg-\[\#09090b\]\/95,
html.light .bg-\[\#09090b\]\/98,
html.light .bg-\[\#09090b\]\/85,
html.light .bg-\[\#142E30\]\/90,
html.light .bg-\[\#142E30\]\/95,
html.light .bg-\[\#121815\]\/90,
html.light .bg-\[\#121815\]\/95,
html.light .bg-\[\#121815\]\/98,
html.light .bg-\[\#051C18\]\/90,
[data-theme="light"] .bg-\[\#09090b\]\/90,
[data-theme="light"] .bg-\[\#09090b\]\/95,
[data-theme="light"] .bg-\[\#09090b\]\/98,
[data-theme="light"] .bg-\[\#09090b\]\/85,
[data-theme="light"] .bg-\[\#142E30\]\/90,
[data-theme="light"] .bg-\[\#142E30\]\/95,
[data-theme="light"] .bg-\[\#121815\]\/90,
[data-theme="light"] .bg-\[\#121815\]\/95,
[data-theme="light"] .bg-\[\#121815\]\/98,
[data-theme="light"] .bg-\[\#051C18\]\/90 {
    background-color: rgba(255, 255, 255, 0.96) !important;
}

html.light .bg-\[\#121815\],
html.light .bg-\[\#182620\],
[data-theme="light"] .bg-\[\#121815\],
[data-theme="light"] .bg-\[\#182620\] {
    background-color: #FFFFFF !important;
}

html.light .bg-\[\#142E30\],
html.light .bg-\[\#1f2e26\],
html.light .bg-\[\#142e23\],
html.light .bg-\[\#0F2E25\],
html.light .bg-\[\#0A3C31\],
html.light .bg-\[\#0A2620\],
html.light .bg-\[\#EDF6F1\],
html.light .bg-\[\#EBF5EF\],
[data-theme="light"] .bg-\[\#142E30\],
[data-theme="light"] .bg-\[\#1f2e26\],
[data-theme="light"] .bg-\[\#142e23\],
[data-theme="light"] .bg-\[\#0F2E25\],
[data-theme="light"] .bg-\[\#0A3C31\],
[data-theme="light"] .bg-\[\#0A2620\],
[data-theme="light"] .bg-\[\#EDF6F1\],
[data-theme="light"] .bg-\[\#EBF5EF\] {
    background-color: #EDF7F2 !important;
}

html.light .text-gmit-white,
html.light .text-white,
html.light .text-white\/90,
html.light .text-white\/95,
html.light .text-white\/85,
html.light .text-white\/80,
html.light .text-white\/70,
html.light .text-\[\#FFFFFF\],
html.light .text-\[\#EAF2EE\],
[data-theme="light"] .text-gmit-white,
[data-theme="light"] .text-white,
[data-theme="light"] .text-white\/90,
[data-theme="light"] .text-white\/95,
[data-theme="light"] .text-white\/85,
[data-theme="light"] .text-white\/80,
[data-theme="light"] .text-white\/70,
[data-theme="light"] .text-\[\#FFFFFF\],
[data-theme="light"] .text-\[\#EAF2EE\] {
    color: #09090b !important;
}

html.light .text-gmit-muted,
html.light .text-\[\#A0A3A7\],
html.light .text-\[\#A2B2A6\],
html.light .text-\[\#94A3B8\],
[data-theme="light"] .text-gmit-muted,
[data-theme="light"] .text-\[\#A0A3A7\],
[data-theme="light"] .text-\[\#A2B2A6\],
[data-theme="light"] .text-\[\#94A3B8\] {
    color: #334155 !important;
}

html.light .text-\[\#18a968\],
html.light .text-\[\#1ED189\],
[data-theme="light"] .text-\[\#18a968\],
[data-theme="light"] .text-\[\#1ED189\] {
    color: #1AA170 !important;
}

html.light .border-gmit-border,
html.light .border-\[\#1f2e26\],
[data-theme="light"] .border-gmit-border,
[data-theme="light"] .border-\[\#1f2e26\] {
    border-color: #E2E8F0 !important;
}

html.light .border-\[\#18a968\]\/30,
html.light .border-\[\#18a968\]\/40,
html.light .border-\[\#18a968\]\/50,
html.light .border-\[\#18a968\]\/60,
[data-theme="light"] .border-\[\#18a968\]\/30,
[data-theme="light"] .border-\[\#18a968\]\/40,
[data-theme="light"] .border-\[\#18a968\]\/50,
[data-theme="light"] .border-\[\#18a968\]\/60 {
    border-color: #27B776 !important;
}

html.light .navbar-glass,
html.light #main-navbar,
html.light #mobile-menu,
[data-theme="light"] .navbar-glass,
[data-theme="light"] #main-navbar,
[data-theme="light"] #mobile-menu {
    background-color: rgba(255, 255, 255, 0.96) !important;
}

html.light #top-announcement-bar,
[data-theme="light"] #top-announcement-bar {
    background-color: #FFFFFF !important;
    border-bottom-color: #E2E8F0 !important;
}

html.light #top-announcement-bar p,
html.light #top-announcement-bar span,
[data-theme="light"] #top-announcement-bar p,
[data-theme="light"] #top-announcement-bar span {
    color: #09090b !important;
}

html.light .btn-gradient,
[data-theme="light"] .btn-gradient {
    color: #FFFFFF !important;
}

html.light .bg-\[\#18a968\],
[data-theme="light"] .bg-\[\#18a968\] {
    background-color: #1AA170 !important;
    color: #FFFFFF !important;
}

html.light input,
html.light textarea,
html.light .form-input,
[data-theme="light"] input,
[data-theme="light"] textarea,
[data-theme="light"] .form-input {
    background-color: #FFFFFF !important;
    color: #09090b !important;
    border-color: #CBD5E1 !important;
}

html.light input::placeholder,
html.light textarea::placeholder,
[data-theme="light"] input::placeholder,
[data-theme="light"] textarea::placeholder {
    color: #94A3B8 !important;
}

html.light .bg-\[\#18a968\]\/10,
html.light .bg-\[\#18a968\]\/15,
html.light .bg-\[\#18a968\]\/20,
html.light .bg-\[\#1AA170\]\/20,
html.light .bg-\[\#142E30\]\/40,
html.light .bg-\[\#142E30\]\/60,
[data-theme="light"] .bg-\[\#18a968\]\/10,
[data-theme="light"] .bg-\[\#18a968\]\/15,
[data-theme="light"] .bg-\[\#18a968\]\/20,
[data-theme="light"] .bg-\[\#1AA170\]\/20,
[data-theme="light"] .bg-\[\#142E30\]\/40,
[data-theme="light"] .bg-\[\#142E30\]\/60 {
    background-color: rgba(39, 183, 118, 0.08) !important;
}

html.light .text-white\/85,
html.light .text-white\/80,
[data-theme="light"] .text-white\/85,
[data-theme="light"] .text-white\/80 {
    color: #334155 !important;
}

html.light .bg-gmit-surface\/95,
html.light .bg-gmit-surface\/90,
[data-theme="light"] .bg-gmit-surface\/95,
[data-theme="light"] .bg-gmit-surface\/90 {
    background-color: rgba(255, 255, 255, 0.95) !important;
}

html.light .bg-\[\#142e23\]\/60,
html.light .hover\:bg-\[\#121815\]:hover,
html.light .hover\:bg-\[\#142e23\]:hover,
[data-theme="light"] .bg-\[\#142e23\]\/60,
[data-theme="light"] .hover\:bg-\[\#121815\]:hover,
[data-theme="light"] .hover\:bg-\[\#142e23\]:hover {
    background-color: #EDF7F2 !important;
}

html.light #hero-section .hero-blur-edge,
[data-theme="light"] #hero-section .hero-blur-edge {
    display: none;
}

html.light #hero-watermark,
html.light .hero-watermark,
[data-theme="light"] #hero-watermark,
[data-theme="light"] .hero-watermark {
    color: rgba(24, 169, 104, 0.18);
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        rgba(0, 0, 0, 0.25) 5%,
        #000 12%,
        #000 88%,
        rgba(0, 0, 0, 0.25) 95%,
        transparent 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        rgba(0, 0, 0, 0.25) 5%,
        #000 12%,
        #000 88%,
        rgba(0, 0, 0, 0.25) 95%,
        transparent 100%
    );
}

@media (max-width: 639px) {
    html.light #hero-watermark,
    html.light .hero-watermark,
    [data-theme="light"] #hero-watermark,
    [data-theme="light"] .hero-watermark {
        font-size: clamp(3.75rem, 26vw, 8.5rem);
        letter-spacing: 0.02em;
        color: rgba(24, 169, 104, 0.28);
    }
}

html.light .text-\[\#0d3b28\],
[data-theme="light"] .text-\[\#0d3b28\] {
    color: rgba(26, 161, 112, 0.12) !important;
}

/* Hero — textos e links no modo claro */
html.light #hero-section .hero-highlight-link,
html.light #hero-section .hero-highlight-link span,
[data-theme="light"] #hero-section .hero-highlight-link,
[data-theme="light"] #hero-section .hero-highlight-link span {
    color: #09090b !important;
}

html.light #hero-section .nav-link,
[data-theme="light"] #hero-section .nav-link {
    color: #4A5B6D !important;
}

html.light .nav-link,
[data-theme="light"] .nav-link {
    color: #4A5B6D !important;
}

html.light .nav-link:hover,
[data-theme="light"] .nav-link:hover {
    color: #1AA170 !important;
}

html.light .mobile-nav-link,
[data-theme="light"] .mobile-nav-link {
    color: #09090b !important;
    border-bottom-color: #E2E8F0 !important;
}

html.light .mobile-nav-link:hover,
[data-theme="light"] .mobile-nav-link:hover {
    background-color: #EDF7F2 !important;
}

/* ── Edge fades (marquee / ecossistema) ── */
.edge-fade-left {
    background: linear-gradient(to right, #09090b 0%, rgba(9, 9, 11, 0.9) 30%, rgba(9, 9, 11, 0) 100%);
}

.edge-fade-right {
    background: linear-gradient(to left, #09090b 0%, rgba(9, 9, 11, 0.9) 30%, rgba(9, 9, 11, 0) 100%);
}

html.light .edge-fade-left,
[data-theme="light"] .edge-fade-left {
    background: linear-gradient(to right, #FFFFFF 0%, rgba(255, 255, 255, 0.9) 35%, rgba(255, 255, 255, 0) 100%) !important;
}

html.light .edge-fade-right,
[data-theme="light"] .edge-fade-right {
    background: linear-gradient(to left, #FFFFFF 0%, rgba(255, 255, 255, 0.9) 35%, rgba(255, 255, 255, 0) 100%) !important;
}

/* ==========================================================================
   Animações
   ========================================================================== */

@keyframes marquee {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-50%); }
}

.animate-marquee {
    display: flex;
    width: max-content;
    animation: marquee 35s linear infinite;
}

.animate-marquee:hover {
    animation-play-state: paused;
}

@keyframes fade-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
    animation: fade-in 0.3s ease-out forwards;
}

@keyframes pulse-dot {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

.animate-pulse-dot {
    animation: pulse-dot 2s ease-in-out infinite;
}

@keyframes spin-slow {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.animate-spin-slow {
    animation: spin-slow 3s linear infinite;
}

/* ── Scrollbar ── */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #09090b; }
html.light ::-webkit-scrollbar-track,
[data-theme="light"] ::-webkit-scrollbar-track { background: #FFFFFF; }
::-webkit-scrollbar-thumb { background: #1f2e26; border-radius: 4px; }
html.light ::-webkit-scrollbar-thumb,
[data-theme="light"] ::-webkit-scrollbar-thumb { background: #CBD5E1; }
::-webkit-scrollbar-thumb:hover { background: #27B776; }

/* ==========================================================================
   Componentes reutilizáveis
   ========================================================================== */

.btn-gradient {
    background: linear-gradient(to right, #18a968, #1AA170, #1ED189);
    color: #fff;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-gradient:hover {
    opacity: 0.95;
    transform: scale(1.05);
    box-shadow: 0 0 45px rgba(34, 181, 115, 0.7);
}

.btn-gradient:active { transform: scale(0.95); }

.btn-outline-green {
    background: #121815;
    border: 1px solid rgba(24, 169, 104, 0.4);
    color: #fff;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-outline-green:hover {
    border-color: #18a968;
    background: #1f2e26;
    transform: scale(1.05);
}

.badge-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.875rem;
    border-radius: 9999px;
    background: #121815;
    border: 1px solid rgba(24, 169, 104, 0.4);
    color: #1ED189;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.section-glow {
    position: absolute;
    pointer-events: none;
    border-radius: 50%;
    filter: blur(140px);
}

.card-surface {
    background: #121815;
    border: 1px solid #1f2e26;
    border-radius: 1.5rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.card-surface:hover {
    border-color: rgba(24, 169, 104, 0.6);
}

/* ── Navbar ── */
.nav-link {
    font-size: 0.875rem;
    font-weight: 500;
    color: #A0A3A7;
    text-decoration: none;
    transition: color 0.2s ease;
    padding: 0.5rem 0;
}

.nav-link:hover { color: #1ED189; }

.mobile-nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.875rem;
    font-weight: 600;
    color: #fff;
    padding: 0.625rem 0.75rem;
    border-radius: 0.5rem;
    border-bottom: 1px solid #1f2e26;
    text-decoration: none;
    transition: background-color 0.2s ease;
}

.mobile-nav-link:hover { background-color: #121815; }

.theme-btn {
    padding: 0.375rem;
    border-radius: 9999px;
    border: none;
    background: transparent;
    color: #A0A3A7;
    cursor: pointer;
    transition: all 0.2s ease;
}

.theme-btn:hover { color: #fff; }

.theme-btn.theme-active {
    background: #27B776;
    color: #fff;
    box-shadow: 0 0 10px rgba(39, 183, 118, 0.5);
}

.theme-switcher,
.pl-theme-btn { display: none !important; }

/* ── Hero watermark GESTÃOMIT ── */
#hero-watermark-wrap {
    overflow: hidden;
    max-width: 100%;
    width: 100%;
}

.hero-watermark-stage {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    max-width: 100%;
    overflow: hidden;
    padding-block: 0.12em;
}

#hero-watermark,
.hero-watermark {
    display: block;
    width: max-content;
    max-width: 100%;
    font-size: clamp(3.75rem, 16.5vw, 34rem);
    font-weight: 900;
    letter-spacing: clamp(0.015em, 0.05vw + 0.012em, 0.04em);
    line-height: 1.12;
    text-transform: uppercase;
    white-space: nowrap;
    color: #0d3b28;
    user-select: none;
    position: relative;
    z-index: 10;
    overflow: hidden;
    padding-top: 0.08em;
    padding-bottom: 0.04em;
    transition: opacity 1s ease-out, transform 1s ease-out, filter 1s ease-out;
    will-change: opacity, transform, filter;
    /* Fade suave só nas pontas G e T */
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        rgba(0, 0, 0, 0.35) 4%,
        #000 11%,
        #000 89%,
        rgba(0, 0, 0, 0.35) 96%,
        transparent 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        rgba(0, 0, 0, 0.35) 4%,
        #000 11%,
        #000 89%,
        rgba(0, 0, 0, 0.35) 96%,
        transparent 100%
    );
}

/* Blur óptico antes do G e depois do T (relativo ao texto, não à tela) */
.hero-blur-edge {
    position: absolute;
    top: -2%;
    bottom: -2%;
    z-index: 20;
    pointer-events: none;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.hero-blur-edge-left {
    left: -8%;
    width: 16%;
    -webkit-mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,0.75) 45%, transparent 100%);
    mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,0.75) 45%, transparent 100%);
}

.hero-blur-edge-right {
    right: -8%;
    width: 16%;
    -webkit-mask-image: linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,0.75) 45%, transparent 100%);
    mask-image: linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,0.75) 45%, transparent 100%);
}

@media (min-width: 640px) {
    #hero-watermark,
    .hero-watermark {
        font-size: clamp(5.5rem, 17vw, 30rem);
        letter-spacing: clamp(0.02em, 0.06vw + 0.015em, 0.045em);
    }
    .hero-blur-edge-left {
        left: -7%;
        width: 14%;
    }
    .hero-blur-edge-right {
        right: -7%;
        width: 14%;
    }
}

@media (min-width: 1024px) {
    #hero-watermark,
    .hero-watermark {
        font-size: clamp(6.5rem, 15.5vw, 34rem);
        letter-spacing: clamp(0.025em, 0.07vw + 0.018em, 0.05em);
    }
    .hero-blur-edge-left {
        left: -6%;
        width: 12%;
    }
    .hero-blur-edge-right {
        right: -6%;
        width: 12%;
    }
}

#hero-watermark.hidden-load,
.hero-watermark.hidden-load {
    opacity: 0;
    transform: scale(0.95);
    filter: blur(12px);
}

#hero-watermark:not(.hidden-load),
.hero-watermark:not(.hidden-load) {
    opacity: 1;
    transform: scale(1);
    filter: none;
}

#hero-copy {
    opacity: 1;
    transform: none;
    filter: none;
}

.hero-highlight-link {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    text-align: left;
    width: 100%;
    background: transparent;
    border: 0;
    padding: 0;
}

@media (min-width: 1280px) {
    .hero-highlight-link { text-align: right; }
}

/* ── Project pills ── */
.project-pill {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.625rem;
    border-radius: 0.75rem;
    background: #142E30;
    border: 1px solid #1f2e26;
    cursor: pointer;
    flex-shrink: 0;
    transition: all 0.2s ease;
    text-decoration: none;
    color: inherit;
}

.project-pill:hover {
    border-color: #1ED189;
    transform: scale(1.03);
}

/* ── Carrossel de soluções ── */
.carousel-nav-btn {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 1rem;
    background: #121815;
    color: #fff;
    border: 1px solid #1f2e26;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.carousel-nav-btn:hover {
    background: #18a968;
    border-color: #18a968;
}

.carousel-nav-btn:active { transform: scale(0.95); }

/* Carrossel — swipe no celular */
.solutions-carousel-wrap {
    overflow: hidden;
    touch-action: pan-y;
}

#solutions-carousel {
    will-change: transform;
}

#solutions-carousel.carousel-slide-from-left {
    animation: carousel-enter-from-right 0.35s ease-out;
}

#solutions-carousel.carousel-slide-from-right {
    animation: carousel-enter-from-left 0.35s ease-out;
}

@keyframes carousel-enter-from-right {
    from { opacity: 0.4; transform: translateX(28px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes carousel-enter-from-left {
    from { opacity: 0.4; transform: translateX(-28px); }
    to { opacity: 1; transform: translateX(0); }
}

@media (max-width: 767px) {
  .solutions-swipe-hint {
    display: flex;
  }
}

.solutions-swipe-hint {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    font-size: 0.6875rem;
    color: #A0A3A7;
    margin-top: -0.5rem;
}

.solution-card {
    border-radius: 1.5rem;
    padding: 1.75rem 2rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
    text-align: center;
    animation: fade-in 0.35s ease-out forwards;
}

.solution-card:nth-child(2) { animation-delay: 0.08s; }
.solution-card:nth-child(3) { animation-delay: 0.16s; }

.solution-card-highlight {
    background: #121815;
    border: 2px solid #18a968;
    box-shadow: 0 0 30px rgba(34, 181, 115, 0.25);
    outline: 1px solid rgba(24, 169, 104, 0.4);
}

.solution-card-default {
    background: rgba(18, 24, 21, 0.9);
    border: 1px solid #1f2e26;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.solution-card-default:hover {
    border-color: rgba(24, 169, 104, 0.6);
    background: rgba(20, 46, 48, 0.6);
}

.solution-card-glow {
    position: absolute;
    top: 0;
    right: 0;
    width: 8rem;
    height: 8rem;
    background: rgba(24, 169, 104, 0.1);
    border-radius: 50%;
    filter: blur(2rem);
    pointer-events: none;
    transition: background 0.3s ease;
}

.solution-card:hover .solution-card-glow {
    background: rgba(24, 169, 104, 0.2);
}

.solution-category-badge {
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    background: #142E30;
    border: 1px solid rgba(24, 169, 104, 0.3);
    color: #1ED189;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.solution-icon-box {
    margin: 0 auto;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #09090b;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.solution-card:hover .solution-icon-box {
    transform: scale(1.05);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.4);
}

.solution-cta-btn {
    width: 100%;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    background: #18a968;
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    box-shadow: 0 0 20px rgba(34, 181, 115, 0.35);
    transition: all 0.2s ease;
}

.solution-cta-btn:hover {
    background: #1AA170;
    box-shadow: 0 0 25px rgba(34, 181, 115, 0.5);
}

.solution-cta-btn:active { transform: scale(0.98); }

.carousel-dot {
    height: 0.625rem;
    width: 0.625rem;
    border-radius: 9999px;
    background: #1f2e26;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
}

.carousel-dot:hover { background: rgba(24, 169, 104, 0.5); }

.carousel-dot-active {
    width: 2rem;
    background: #18a968;
    box-shadow: 0 0 10px #18a968;
}

/* ── Metodologia & público-alvo ── */
.methodology-card {
    background: #09090b;
    border: 1px solid #1f2e26;
    border-radius: 1rem;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    transition: all 0.2s ease;
}

.methodology-card:hover {
    border-color: rgba(24, 169, 104, 0.6);
    background: #142E30;
}

.audience-card {
    background: #121815;
    border: 1px solid #1f2e26;
    border-radius: 1.5rem;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1.5rem;
    transition: all 0.3s ease;
}

.audience-card:hover {
    background: #142E30;
    box-shadow: 0 0 30px rgba(34, 181, 115, 0.15);
    border-color: rgba(24, 169, 104, 0.6);
}

.audience-cta {
    width: 100%;
    padding: 0.625rem 1rem;
    border-radius: 0.75rem;
    background: #09090b;
    border: 1px solid #1f2e26;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    transition: all 0.2s ease;
}

.audience-cta:hover {
    background: #18a968;
    border-color: #18a968;
}

/* ── Marquee credibilidade ── */
.marquee-item {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.875rem 1.25rem;
    border-radius: 1rem;
    background: #121815;
    border: 1px solid #1f2e26;
    flex-shrink: 0;
    transition: border-color 0.2s ease;
}

.marquee-item:hover { border-color: rgba(24, 169, 104, 0.6); }

.marquee-symbol {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: #142E30;
    border: 1px solid rgba(24, 169, 104, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 900;
    font-size: 0.75rem;
    transition: background 0.2s ease;
}

.marquee-item:hover .marquee-symbol { background: #18a968; }

/* ── Ecossistema orbital ── */
.ecosystem-zoom-world {
    transform-origin: center center;
    transition: transform 0.08s ease-out;
    will-change: transform;
}

#ecosystem-canvas.is-dragging .ecosystem-zoom-world,
.ecosystem-canvas.is-dragging .ecosystem-zoom-world {
    transition: none;
}

.ecosystem-node-btn {
    cursor: pointer;
    transition: all 0.2s ease;
    border: none;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    box-shadow: 0 0 15px rgba(34, 181, 115, 0.25);
}

.ecosystem-node-btn-layer1 {
    padding: 0.375rem 0.75rem;
    border-radius: 9999px;
    background: rgba(18, 24, 21, 0.95);
    border: 1px solid rgba(24, 169, 104, 0.6);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
}

.ecosystem-node-btn-layer1:hover {
    transform: scale(1.05);
    background: #142E30;
    border-color: #1ED189;
}

.ecosystem-node-btn-layer2 {
    padding: 0.25rem 0.625rem;
    border-radius: 0.75rem;
    background: rgba(20, 46, 48, 0.95);
    border: 1px solid rgba(24, 169, 104, 0.4);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
}

.ecosystem-node-btn-layer2:hover {
    transform: scale(1.05);
    background: #121815;
    border-color: #1ED189;
}

.ecosystem-node-btn-layer3 {
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    background: rgba(9, 9, 11, 0.9);
    border: 1px solid #1f2e26;
    color: #A0A3A7;
    font-size: 10px;
    font-weight: 500;
}

.ecosystem-node-btn-layer3:hover {
    transform: scale(1.05);
    background: #121815;
    border-color: #18a968;
    color: #fff;
}

.ecosystem-node {
    overflow: visible;
}

.ecosystem-node.active {
    z-index: 80;
}

.ecosystem-node.active .ecosystem-node-btn {
    outline: 2px solid #1ED189;
    outline-offset: 2px;
}

.ecosystem-node-tooltip {
    display: none;
    position: absolute;
    z-index: 80;
    width: 15.5rem;
    max-width: min(15.5rem, 68vw);
    padding: 0.85rem 1rem;
    background: #0c1210;
    border: 1px solid rgba(30, 209, 137, 0.7);
    border-radius: 0.85rem;
    text-align: left;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.72);
    animation: fade-in 0.2s ease-out;
}

.ecosystem-node-tooltip.is-down {
    top: calc(100% + 0.6rem);
    left: 50%;
    transform: translateX(-50%);
}

.ecosystem-node-tooltip.is-up {
    bottom: calc(100% + 0.6rem);
    left: 50%;
    transform: translateX(-50%);
}

.ecosystem-node-tooltip.is-right {
    left: calc(100% + 0.65rem);
    top: 50%;
    transform: translateY(-50%);
}

.ecosystem-node-tooltip.is-left {
    right: calc(100% + 0.65rem);
    top: 50%;
    transform: translateY(-50%);
}

.ecosystem-tooltip-title {
    color: #1ED189;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.25;
    margin-bottom: 0.35rem;
}

.ecosystem-tooltip-desc {
    color: #f3f1ea;
    font-size: 0.84rem;
    font-weight: 400;
    line-height: 1.45;
}

.ecosystem-node.active .ecosystem-node-tooltip { display: block; }

.ecosystem-tooltip-category {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #1ED189;
}

.ecosystem-tooltip-cta {
    margin-top: 0.5rem;
    width: 100%;
    padding: 0.25rem 0.5rem;
    border-radius: 0.5rem;
    background: #18a968;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    border: none;
    cursor: pointer;
}

.ecosystem-tooltip-cta:hover { background: #1AA170; }

/* ── Glow cards interativos ── */
.glow-card {
    transition: background-image 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

/* ── Footer ── */
.footer-shell {
    display: flex;
    flex-direction: column;
    gap: 2.75rem;
}

.footer-top {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem 2.5rem;
}

.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}

.footer-col-head {
    display: block;
    margin-bottom: 1.15rem;
    padding-bottom: 0.7rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.footer-col-head::after {
    content: none;
}

.footer-heading,
.footer-attend-title {
    margin: 0;
    color: #1ED189;
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.2;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.72rem;
}

.footer-links a,
.footer-links button {
    font-size: 0.9375rem;
    line-height: 1.35;
    color: #1aa3a8;
    text-decoration: none;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    text-align: left;
}

.footer-links a:hover,
.footer-links button:hover {
    color: #7ee0dc;
    text-decoration: none;
}

.footer-attend-title {
    display: block;
    font-size: 1.35rem;
    margin-bottom: 1.35rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.footer-attend-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.75rem 3rem;
}

.footer-attend-copy {
    max-width: 28rem;
}

.footer-attend-copy p {
    margin: 0 0 0.85rem;
    color: #b7c0c8;
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.55;
}

.footer-contact-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.75rem 2.75rem;
    align-content: start;
}

.footer-channel {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    text-decoration: none;
}

.footer-channel-label {
    font-size: 0.875rem;
    font-weight: 400;
    color: #b7c0c8;
}

.footer-channel-value {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
    color: #ffffff;
}

.footer-channel:hover .footer-channel-value {
    color: #1ED189;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding-top: 1.15rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.footer-bottom > p {
    margin: 0;
    font-size: 0.75rem;
    color: #8b949e;
}

.footer-socials {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.footer-social {
    display: inline-flex;
    color: #d5dde4;
    text-decoration: none;
}

.footer-social svg {
    width: 1.35rem;
    height: 1.35rem;
    display: block;
}

.footer-social:hover {
    color: #ffffff;
}

@media (min-width: 900px) {
    .footer-top {
        grid-template-columns: 1.15fr 1fr 1fr 1fr;
        align-items: start;
    }

    .footer-brand {
        gap: 0.4rem;
    }

    .footer-attend-grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
        align-items: start;
    }

    .footer-contact-grid {
        grid-template-columns: 1fr;
        justify-items: start;
        gap: 1.35rem;
    }

    .footer-bottom {
        flex-direction: row;
        align-items: center;
        padding-right: 6.5rem;
    }
}

/* ── Links de contato ── */
.contact-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    color: #A0A3A7;
    text-decoration: none;
    transition: color 0.2s ease;
}

.contact-link:hover { color: #1ED189; }

/* ── Formulários ── */
.form-input {
    width: 100%;
    background: #09090b;
    border: 1px solid #1f2e26;
    border-radius: 0.75rem;
    padding: 0.625rem 0.875rem;
    font-size: 0.875rem;
    color: #fff;
    transition: border-color 0.2s ease;
}

.form-input:focus {
    border-color: #18a968;
    outline: none;
}

.form-input::placeholder { color: rgba(160, 163, 167, 0.5); }

.country-picker { position: relative; }
.country-flag-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.15rem;
    flex-shrink: 0;
    border-radius: 0.75rem;
    border: 1px solid #18a968;
    background: #09090b;
    cursor: pointer;
    padding: 0;
}
.country-flag-btn img {
    width: 22px;
    height: 16px;
    object-fit: cover;
    border-radius: 2px;
}
.country-picker-menu {
    margin-top: 0.35rem;
    border: 1px solid #1f2e26;
    border-radius: 0.75rem;
    background: #121815;
    padding: 0.45rem;
}
.country-picker-menu[hidden] { display: none; }
.country-picker-search { margin-bottom: 0.35rem; }
.country-picker-list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 11.5rem;
    overflow: auto;
}
.country-option {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    padding: 0.45rem 0.55rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: #fff;
    font-size: 0.8125rem;
    cursor: pointer;
    text-align: left;
}
.country-option img {
    width: 20px;
    height: 15px;
    object-fit: cover;
    border-radius: 2px;
    flex-shrink: 0;
}
.country-option span:last-child {
    margin-left: auto;
    color: #1ED189;
    font-weight: 700;
}
.country-option:hover,
.country-option[aria-selected="true"] { background: rgba(24, 169, 104, 0.16); }
.phone-with-dial { display: flex; align-items: stretch; gap: 0.4rem; }
.phone-input-wrap { position: relative; flex: 1; min-width: 0; }
.phone-input-dial {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: #1ED189;
    font-weight: 700;
    font-size: 0.875rem;
    pointer-events: none;
    white-space: nowrap;
}
.phone-input-wrap .form-input { width: 100%; }

html.light .country-flag-btn,
[data-theme="light"] .country-flag-btn {
    background: #FFFFFF;
    border-color: #18a968;
}
html.light .country-picker-menu,
[data-theme="light"] .country-picker-menu {
    background: #FFFFFF;
    border-color: #CBD5E1;
}
html.light .country-option,
[data-theme="light"] .country-option { color: #09090b; }
html.light .phone-input-dial,
[data-theme="light"] .phone-input-dial { color: #127A49; }

/* ── Mobile menu ── */
#mobile-menu { display: none; }
#mobile-menu.open { display: block; }

/* ── Scroll to top ── */
#scroll-to-top-btn {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.8) translateY(20px);
    transition: all 0.25s ease;
}

#scroll-to-top-btn.visible {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1) translateY(0);
}

/* ── Modais ── */
#contact-modal { display: none; }
#contact-modal.open { display: flex; }
#contact-modal .modal-success { display: none; }
#contact-modal.submitted .modal-form { display: none; }
#contact-modal.submitted .modal-success { display: block; }
#contact-modal .contact-whatsapp-fallback { display: none; }
#contact-modal.whatsapp-blocked .contact-whatsapp-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.75rem;
    padding: 0.75rem 1.25rem;
    border-radius: 999px;
    background: #18a968;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
}

/* ==========================================================================
   PROJECT LANDING PAGES
   ========================================================================== */

.gmit-screen-hidden { display: none !important; }

#project-landing-root {
    min-height: 100vh;
    background: var(--pl-bg, #09090b);
}

body.project-landing-active #scroll-to-top-btn {
    display: none !important;
}

.pl-page {
    min-height: 100vh;
    background: var(--pl-bg);
    color: var(--pl-text);
    transition: background-color 0.4s ease, color 0.4s ease;
}

.pl-container {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 1rem;
}

@media (min-width: 640px) { .pl-container { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .pl-container { padding: 0 2rem; } }

.pl-glow {
    position: absolute;
    pointer-events: none;
    filter: blur(60px);
    opacity: 0.6;
}

.pl-glow-hero {
    top: 0; right: 0;
    width: 600px; height: 500px;
    background: radial-gradient(circle at 70% 30%, var(--pl-glow) 0%, transparent 65%);
}

.pl-glow-center {
    inset: 0;
    background: radial-gradient(ellipse at 50% 50%, var(--pl-glow) 0%, transparent 70%);
    opacity: 0.45;
}

/* Header */
.pl-header {
    position: sticky;
    top: 0;
    z-index: 40;
    backdrop-filter: blur(12px);
    background: color-mix(in srgb, var(--pl-bg) 92%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--pl-border) 40%, transparent);
}

.pl-header-inner {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 1rem;
    height: 5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pl-header-left, .pl-header-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.pl-logo-btn, .pl-back-pill, .pl-theme-btn, .pl-btn-secondary, .pl-footer-contact {
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
}

.pl-logo-btn {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-align: left;
}

.pl-logo-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, var(--pl-brand), color-mix(in srgb, var(--pl-brand) 60%, #fff));
    box-shadow: 0 0 20px var(--pl-glow);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2px;
    flex-shrink: 0;
}

.pl-logo-icon > i,
.pl-logo-icon.sm > i {
    width: 1rem; height: 1rem;
    color: var(--pl-brand);
}

.pl-logo-icon-img {
    position: relative;
    z-index: 1;
    width: 1.35rem;
    height: 1.35rem;
    object-fit: contain;
    display: block;
    pointer-events: none;
}

.gmit-mark {
    display: block;
    width: 1.45rem;
    height: 1.45rem;
    background-color: #fff;
    -webkit-mask: url('../assets/img/custom/icon.png') center / contain no-repeat;
    mask: url('../assets/img/custom/icon.png') center / contain no-repeat;
}

.pl-logo-icon-mark {
    position: relative;
    z-index: 1;
    display: inline-block;
    flex-shrink: 0;
    line-height: 0;
}

.pl-logo-icon-mark > img {
    display: block;
    height: 1.1rem;
    width: auto;
    max-width: 100%;
    opacity: 0;
    pointer-events: none;
}

.pl-logo-icon-mark::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--pl-brand);
    -webkit-mask-image: url('../assets/img/custom/icon.png');
    mask-image: url('../assets/img/custom/icon.png');
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.pl-logo-icon-img-sm,
.pl-logo-icon-mark-sm > img {
    height: 0.9rem;
}

.pl-logo-icon.sm { width: 1.75rem; height: 1.75rem; }

.pl-logo-icon::after {
    content: '';
    position: absolute;
}

.pl-logo-icon {
    position: relative;
}

.pl-logo-icon::before {
    content: '';
    position: absolute;
    inset: 2px;
    border-radius: 10px;
    background: var(--pl-bg);
}

.pl-logo-icon i,
.pl-logo-icon-img,
.pl-logo-icon-mark { position: relative; z-index: 1; }

.pl-logo-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
    line-height: 1.15;
    min-width: 0;
}

.pl-logo-brand {
    display: inline-flex;
    align-items: baseline;
    white-space: nowrap;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--pl-text);
    line-height: 1.1;
}

.pl-logo-brand > span {
    color: var(--pl-brand);
    font-weight: 800;
}

.pl-logo-text small,
.pl-logo-project {
    display: block;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pl-muted);
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pl-footer-brand-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
    min-width: 0;
}

.pl-footer-brand-text .pl-logo-brand {
    font-size: 1rem;
}

/* ── Navbar brand logo (modo claro / escuro) ── */
#main-navbar > .navbar-bar-inner {
    overflow: hidden;
    min-width: 0;
}

.navbar-brand-link {
    line-height: 0;
    display: flex;
    align-items: center;
    height: 100%;
    flex-shrink: 0;
}

.navbar-brand-logo-frame {
    display: block;
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
    height: 3.35rem;
    width: 11.25rem;
}

.navbar-brand-logo {
    position: absolute;
    left: 50%;
    top: 50%;
    height: 11.5rem;
    width: auto;
    max-width: none;
    transform: translate(-50%, -50%);
    transition: opacity 0.2s ease;
    pointer-events: none;
}

@media (min-width: 640px) {
    .navbar-brand-logo-frame {
        height: 3.75rem;
        width: 12.5rem;
    }

    .navbar-brand-logo {
        height: 12.5rem;
    }
}

@media (min-width: 1024px) {
    .navbar-brand-logo-frame {
        height: 4.15rem;
        width: 13.75rem;
    }

    .navbar-brand-logo {
        height: 13.5rem;
    }
}

html.dark .navbar-brand-logo-light,
html:not(.dark) .navbar-brand-logo-dark,
[data-theme="dark"] .navbar-brand-logo-light,
[data-theme="light"] .navbar-brand-logo-dark {
    display: none !important;
}

html.dark .navbar-brand-logo-dark,
html:not(.dark) .navbar-brand-logo-light,
[data-theme="dark"] .navbar-brand-logo-dark,
[data-theme="light"] .navbar-brand-logo-light {
    display: block !important;
}

.pl-back-pill {
    display: none;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.875rem;
    border-radius: 9999px;
    border: 1px solid var(--pl-border);
    background: color-mix(in srgb, var(--pl-surface) 80%, transparent);
    color: var(--pl-text);
    font-size: 0.75rem;
    font-weight: 600;
    transition: opacity 0.2s;
}

.pl-back-pill:hover { opacity: 0.85; }

@media (min-width: 640px) { .pl-back-pill { display: inline-flex; } }

.pl-theme-btn {
    padding: 0.625rem;
    border-radius: 0.75rem;
    border: 1px solid var(--pl-border);
    background: color-mix(in srgb, var(--pl-surface) 80%, transparent);
    color: var(--pl-text);
    transition: transform 0.15s;
}

.pl-theme-btn:hover { transform: scale(1.05); }
.pl-theme-btn i { width: 1rem; height: 1rem; }

.pl-cta-header {
    display: none;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    border-radius: 0.75rem;
    border: none;
    background: var(--pl-brand);
    color: var(--pl-cta-text);
    font-size: 0.8125rem;
    font-weight: 700;
    box-shadow: 0 0 20px var(--pl-glow);
    cursor: pointer;
    transition: transform 0.2s;
}

.pl-cta-header:hover { transform: scale(1.04); }
.pl-cta-header i { width: 1rem; height: 1rem; }

@media (min-width: 640px) { .pl-cta-header { display: inline-flex; } }

/* Hero */
.pl-hero {
    position: relative;
    padding: 2rem 0 5rem;
    overflow: hidden;
}

@media (min-width: 640px) { .pl-hero { padding: 3.5rem 0 7rem; } }

.pl-hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    align-items: center;
    position: relative;
    z-index: 1;
}

@media (min-width: 1024px) {
    .pl-hero-grid { grid-template-columns: 1fr 1fr; gap: 3rem; }
}

.pl-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.875rem;
    border-radius: 9999px;
    border: 1px solid var(--pl-border);
    background: color-mix(in srgb, var(--pl-surface) 90%, transparent);
    color: var(--pl-brand);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 1.25rem;
}

.pl-tag i { width: 0.875rem; height: 0.875rem; }

.pl-hero-copy h1 {
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1.15;
    margin: 0 0 1rem;
    color: var(--pl-text);
}

.pl-hero-copy h1 > span { color: var(--pl-brand); }

.pl-lead {
    font-size: 1rem;
    line-height: 1.65;
    color: var(--pl-muted);
    max-width: 36rem;
    margin: 0 0 1.5rem;
}

.pl-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.pl-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 2rem;
    border-radius: 0.75rem;
    border: none;
    background: var(--pl-brand);
    color: var(--pl-cta-text);
    font-size: 0.9375rem;
    font-weight: 700;
    box-shadow: 0 8px 30px var(--pl-glow);
    cursor: pointer;
    transition: transform 0.2s;
}

.pl-btn-primary:hover { transform: scale(1.04); }
.pl-btn-primary i { width: 1rem; height: 1rem; }

.pl-btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1.5rem;
    border-radius: 0.75rem;
    border: 1px solid var(--pl-border);
    background: color-mix(in srgb, var(--pl-surface) 80%, transparent);
    color: var(--pl-text);
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.2s;
}

.pl-btn-secondary:hover { opacity: 0.85; }
.pl-btn-secondary i { width: 1rem; height: 1rem; }

.pl-hero-art {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 280px;
}

.pl-ribbon-svg {
    width: 100%;
    max-width: 580px;
    height: auto;
    filter: drop-shadow(0 25px 50px rgba(0,0,0,0.5));
}

/* Sections */
.pl-section {
    position: relative;
    padding: 4rem 0;
    overflow: hidden;
}

@media (min-width: 640px) { .pl-section { padding: 6rem 0; } }

.pl-section-alt {
    background: color-mix(in srgb, var(--pl-surface) 60%, var(--pl-bg));
}

.pl-section-head {
    max-width: 48rem;
    margin-bottom: 3rem;
}

.pl-section-head h2 {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 800;
    margin: 0 0 0.75rem;
    color: var(--pl-text);
}

.pl-section-head p {
    font-size: 0.9375rem;
    color: var(--pl-muted);
    margin: 0;
    line-height: 1.6;
}

/* Deliverables */
.pl-deliverables-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .pl-deliverables-grid { grid-template-columns: 1fr 1fr; gap: 3rem; }
}

.pl-deliverables-list { display: flex; flex-direction: column; gap: 1rem; }

.pl-deliverable {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-radius: 1rem;
    border: 1px solid color-mix(in srgb, var(--pl-border) 60%, transparent);
    background: color-mix(in srgb, var(--pl-bg) 95%, var(--pl-surface));
    transition: transform 0.2s, border-color 0.2s;
}

.pl-deliverable:hover {
    transform: scale(1.01);
    border-color: color-mix(in srgb, var(--pl-brand) 30%, transparent);
}

.pl-del-tag {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pl-brand);
    margin-bottom: 0.25rem;
}

.pl-deliverable h3 {
    font-size: 1.0625rem;
    font-weight: 700;
    margin: 0 0 0.375rem;
    color: var(--pl-text);
}

.pl-deliverable p {
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--pl-muted);
    margin: 0;
}

.pl-del-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    border: 1px solid var(--pl-border);
    background: color-mix(in srgb, var(--pl-surface) 50%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pl-del-icon i { width: 1.25rem; height: 1.25rem; color: var(--pl-brand); }

.pl-result-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.5rem;
    border-radius: 1rem;
    background: var(--pl-brand);
    color: var(--pl-cta-text);
    box-shadow: 0 10px 30px var(--pl-glow);
}

.pl-result-tag {
    font-size: 0.6875rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    opacity: 0.9;
    margin-bottom: 0.25rem;
}

.pl-result-card p {
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.5;
    margin: 0;
}

.pl-result-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background: rgba(255,255,255,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pl-result-icon i { width: 1.5rem; height: 1.5rem; }

/* Project icon art (deliverables) */
.pl-project-art {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 440px;
    position: relative;
    padding: 2rem 1rem;
}

.pl-project-art-glow {
    position: absolute;
    width: min(320px, 80vw);
    height: min(320px, 80vw);
    border-radius: 50%;
    background: radial-gradient(circle, var(--pl-glow) 0%, transparent 68%);
    opacity: 0.55;
    pointer-events: none;
}

.pl-project-art-frame {
    position: relative;
    width: clamp(9rem, 22vw, 12.5rem);
    height: clamp(9rem, 22vw, 12.5rem);
    border-radius: 2rem;
    background: linear-gradient(145deg, var(--pl-brand), color-mix(in srgb, var(--pl-brand) 55%, #fff));
    box-shadow: 0 0 50px var(--pl-glow), 0 20px 40px rgba(0, 0, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
}

.pl-project-art-frame i {
    width: clamp(3.5rem, 10vw, 5rem);
    height: clamp(3.5rem, 10vw, 5rem);
    color: var(--pl-cta-text);
    stroke-width: 1.25;
}

.pl-project-art--lottie .pl-project-art-glow {
    width: min(680px, 115vw);
    height: min(680px, 115vw);
    opacity: 0.35;
}

.pl-project-art-lottie {
    position: relative;
    z-index: 1;
    width: clamp(18rem, 54vw, 32rem);
    height: clamp(18rem, 54vw, 32rem);
}

.pl-project-art-lottie svg {
    width: 100% !important;
    height: 100% !important;
}

/* Tablet mockup */
.pl-tablet-wrap { display: flex; justify-content: center; padding-top: 1rem; }

.pl-tablet {
    width: 100%;
    max-width: 520px;
    background: #0d0f17;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 26px;
    padding: 0.75rem 1rem 1rem;
    box-shadow: 0 25px 60px rgba(0,0,0,0.85), 0 0 30px var(--pl-glow);
    transform: perspective(1200px) rotateX(12deg) rotateY(-10deg);
}

.pl-tablet-bar {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    margin-bottom: 0.75rem;
}

.pl-tablet-bar span:nth-child(1) { width: 0.625rem; height: 0.625rem; border-radius: 50%; background: rgba(239,68,68,0.8); }
.pl-tablet-bar span:nth-child(2) { width: 0.625rem; height: 0.625rem; border-radius: 50%; background: rgba(245,158,11,0.8); }
.pl-tablet-bar span:nth-child(3) { width: 0.625rem; height: 0.625rem; border-radius: 50%; background: rgba(16,185,129,0.8); }

.pl-tablet-title {
    margin-left: auto;
    font-size: 0.625rem;
    font-family: monospace;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.pl-tablet-screen {
    background: #090b10;
    border-radius: 1rem;
    padding: 1rem;
    border: 1px solid rgba(255,255,255,0.05);
}

.pl-tablet-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.pl-tablet-stats > div {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.05);
    border-radius: 0.75rem;
    padding: 0.5rem;
}

.pl-tablet-stats small {
    display: block;
    font-size: 0.5625rem;
    color: #94a3b8;
}

.pl-tablet-stats strong {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    color: #fff;
    margin-top: 0.125rem;
}

.pl-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--pl-brand);
    animation: pl-pulse 1.5s infinite;
}

.pl-green { color: #34d399 !important; }

.pl-tablet-chart {
    height: 6rem;
    border-radius: 0.75rem;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.05);
    position: relative;
    overflow: hidden;
}

.pl-chart-line {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 70%;
    background: linear-gradient(to top, color-mix(in srgb, var(--pl-brand) 40%, transparent), transparent);
    clip-path: polygon(0 80%, 15% 60%, 30% 70%, 50% 30%, 70% 45%, 85% 20%, 100% 10%, 100% 100%, 0 100%);
}

@keyframes pl-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* Audience */
.pl-audience-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 768px) { .pl-audience-grid { grid-template-columns: repeat(3, 1fr); } }

.pl-audience-card {
    padding: 1.5rem;
    border-radius: 1rem;
    border: 1px solid color-mix(in srgb, var(--pl-border) 60%, transparent);
    background: color-mix(in srgb, var(--pl-bg) 95%, var(--pl-surface));
    transition: transform 0.2s;
}

.pl-audience-card:hover { transform: translateY(-4px); }

.pl-level-blocks {
    display: flex;
    gap: 0.375rem;
    margin-bottom: 1rem;
}

.pl-level-block {
    width: 0.625rem;
    height: 0.625rem;
    border-radius: 2px;
    background: var(--pl-brand);
}

.pl-audience-card h3 {
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin: 0 0 0.75rem;
    color: var(--pl-text);
}

.pl-audience-card p {
    font-size: 0.8125rem;
    line-height: 1.6;
    color: var(--pl-muted);
    margin: 0 0 1rem;
}

.pl-audience-foot {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255,255,255,0.05);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--pl-brand);
}

.pl-audience-foot i { width: 0.875rem; height: 0.875rem; }

/* Methodology */
.pl-method-layout {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.pl-method-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: start;
}

@media (min-width: 1024px) { .pl-method-grid { grid-template-columns: 5fr 7fr; } }

.pl-engine-card {
    width: 100%;
    max-width: 38rem;
    margin: 0;
    padding: 1.25rem;
    border-radius: 1rem;
    background: #090b12;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 20px 50px rgba(0,0,0,0.5), 0 0 30px var(--pl-glow);
}

.pl-engine-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    margin-bottom: 1rem;
}

.pl-engine-head i { width: 1.25rem; height: 1.25rem; color: var(--pl-brand); }

.pl-engine-head span {
    margin-left: auto;
    font-size: 0.625rem;
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
    background: rgba(16,185,129,0.2);
    color: #34d399;
    font-family: monospace;
}

.pl-progress-label {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    color: #cbd5e1;
    margin-bottom: 0.5rem;
}

.pl-progress-bar {
    height: 0.5rem;
    background: rgba(255,255,255,0.1);
    border-radius: 9999px;
    overflow: hidden;
    margin-bottom: 0.75rem;
}

.pl-progress-fill {
    height: 100%;
    width: 100%;
    background: var(--pl-brand);
    border-radius: 9999px;
}

.pl-engine-card > .pl-progress > p,
.pl-method-layout .pl-engine-card p {
    font-size: 0.75rem;
    color: #94a3b8;
    line-height: 1.5;
    margin: 0;
    text-align: left;
}

.pl-stats-row {
    display: flex;
    margin-top: 1.5rem;
    padding: 1rem 1.25rem;
    border-radius: 1rem;
    border: 1px solid color-mix(in srgb, var(--pl-border) 60%, transparent);
    background: color-mix(in srgb, var(--pl-bg) 95%, var(--pl-surface));
}

.pl-stat {
    flex: 1;
    text-align: center;
    padding: 0 0.5rem;
    border-right: 1px solid rgba(255,255,255,0.08);
}

.pl-stat:last-child { border-right: none; }

.pl-stat-val {
    font-size: clamp(1rem, 2vw, 1.5rem);
    font-weight: 900;
    color: var(--pl-brand);
}

.pl-stat-lbl {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--pl-muted);
    margin-top: 0.125rem;
}

.pl-modules {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    align-items: start;
}

@media (min-width: 640px) {
    .pl-modules { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
    .pl-modules { grid-template-columns: repeat(4, 1fr); }
}

.pl-mod {
    border-radius: 1rem;
    border: 1px solid color-mix(in srgb, var(--pl-border) 60%, transparent);
    background: color-mix(in srgb, var(--pl-bg) 95%, var(--pl-surface));
    overflow: hidden;
    transition: border-color 0.2s;
    align-self: start;
}

.pl-mod-open { border-color: var(--pl-brand); }

.pl-mod-head {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    padding: 1rem;
    border: none;
    background: none;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    color: inherit;
}

.pl-mod-top {
    display: grid;
    grid-template-columns: 1.75rem minmax(0, 1fr);
    gap: 0.5rem 0.625rem;
    align-items: start;
    width: 100%;
}

.pl-mod-copy {
    min-width: 0;
}

.pl-mod-num {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1;
    background: color-mix(in srgb, var(--pl-surface) 50%, transparent);
    color: var(--pl-brand);
    flex-shrink: 0;
    justify-self: center;
}

.pl-mod-open .pl-mod-num {
    background: var(--pl-brand);
    color: var(--pl-cta-text);
}

.pl-mod-phase {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--pl-muted);
}

.pl-mod-head h3 {
    font-size: 0.8125rem;
    font-weight: 700;
    margin: 0.125rem 0 0;
    color: var(--pl-text);
    line-height: 1.35;
}

.pl-mod-meta {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-shrink: 0;
}

.pl-mod-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.6875rem;
    line-height: 1;
    padding: 0.3125rem 0.625rem;
    border-radius: 9999px;
    background: color-mix(in srgb, var(--pl-surface) 50%, transparent);
    color: var(--pl-muted);
}

.pl-mod-meta span i,
.pl-mod-chevron {
    width: 0.875rem !important;
    height: 0.875rem !important;
    flex-shrink: 0;
}

.pl-mod-chevron {
    color: var(--pl-muted);
    transition: transform 0.3s;
}

.pl-mod-open .pl-mod-chevron { transform: rotate(180deg); }

.pl-mod-body {
    padding: 0.75rem 1rem 1rem;
    border-top: 1px solid rgba(255,255,255,0.05);
}

.pl-mod-topic {
    display: grid;
    grid-template-columns: 1.75rem minmax(0, 1fr);
    gap: 0.5rem 0.625rem;
    align-items: start;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--pl-muted);
    padding-top: 0.5rem;
}

.pl-mod-topic-icon {
    width: 0.75rem;
    height: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    justify-self: center;
    align-self: start;
    margin-top: 0.1875rem;
    flex-shrink: 0;
}

.pl-mod-topic-icon i,
.pl-mod-topic-icon svg {
    display: block;
    width: 0.75rem !important;
    height: 0.75rem !important;
    min-width: 0.75rem;
    min-height: 0.75rem;
    color: var(--pl-brand);
    stroke-width: 2;
}

.pl-mod-topic-text {
    min-width: 0;
}

/* Ecosystem CTA */
.pl-ecosystem-cta { text-align: center; padding-bottom: 5rem; }

.pl-ecosystem-inner {
    max-width: 56rem;
    position: relative;
    z-index: 1;
}

.pl-eco-tag {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pl-brand);
    margin-bottom: 1rem;
}

.pl-ecosystem-inner h2 {
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: 900;
    line-height: 1.15;
    margin: 0 0 1rem;
    color: var(--pl-text);
}

.pl-ecosystem-inner > p {
    font-size: 1rem;
    line-height: 1.65;
    color: var(--pl-muted);
    max-width: 42rem;
    margin: 0 auto 1.5rem;
}

.pl-ecosystem-inner blockquote {
    margin: 0 auto 2rem;
    padding: 1.5rem;
    max-width: 36rem;
    border-radius: 1rem;
    border: 1px solid color-mix(in srgb, var(--pl-border) 60%, transparent);
    background: color-mix(in srgb, var(--pl-bg) 95%, var(--pl-surface));
    font-size: 1rem;
    font-weight: 700;
    font-style: italic;
    color: var(--pl-brand);
    line-height: 1.5;
}

.pl-eco-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
}

/* Footer */
.pl-footer {
    padding: 2rem 0;
    border-top: 1px solid color-mix(in srgb, var(--pl-border) 40%, transparent);
}

.pl-footer-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pl-footer-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 700;
    color: var(--pl-text);
}

.pl-footer-brand span span { color: var(--pl-brand); }

.pl-footer-contact {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--pl-brand);
    transition: opacity 0.2s;
}

.pl-footer-contact:hover { opacity: 0.8; }

.pl-footer-inner > p {
    width: 100%;
    text-align: center;
    font-size: 0.75rem;
    color: var(--pl-muted);
    margin: 0.5rem 0 0;
}

@media (min-width: 640px) {
    .pl-footer-inner > p { width: auto; margin: 0; }
}

/* ==========================================================================
   LIGHT MODE — Componentes & elementos gerados via JS
   ========================================================================== */

html.light #main-navbar .rounded-\[10px\].bg-\[\#09090b\],
[data-theme="light"] #main-navbar .rounded-\[10px\].bg-\[\#09090b\] {
    background-color: #0A2620 !important;
}

html.light #main-navbar .rounded-\[10px\].bg-\[\#09090b\] span,
[data-theme="light"] #main-navbar .rounded-\[10px\].bg-\[\#09090b\] span {
    color: #FFFFFF !important;
}

html.light .bg-gradient-to-tr.from-\[\#18a968\],
html.light .bg-gradient-to-br.from-\[\#18a968\],
[data-theme="light"] .bg-gradient-to-tr.from-\[\#18a968\],
[data-theme="light"] .bg-gradient-to-br.from-\[\#18a968\] {
    background-image: linear-gradient(to bottom right, #1AA170, #27B776, #1ED189) !important;
}

html.light #ecosystem-hub .bg-gradient-to-tr,
html.light #ecosystem-hub .rounded-full.border-2,
[data-theme="light"] #ecosystem-hub .bg-gradient-to-tr,
[data-theme="light"] #ecosystem-hub .rounded-full.border-2 {
    background-image: none !important;
    background-color: #FFFFFF !important;
    box-shadow: 0 4px 30px rgba(34, 181, 115, 0.2) !important;
}

html.light #ecosystem-hub .rounded-full .text-white,
[data-theme="light"] #ecosystem-hub .rounded-full .text-white {
    color: #09090b !important;
}

html.light .btn-outline-green,
[data-theme="light"] .btn-outline-green {
    background-color: #FFFFFF !important;
    border-color: #27B776 !important;
    color: #09090b !important;
}

html.light .btn-outline-green:hover,
[data-theme="light"] .btn-outline-green:hover {
    background-color: #1AA170 !important;
    border-color: #1AA170 !important;
    color: #FFFFFF !important;
}

html.light .card-surface,
html.light .glow-card,
[data-theme="light"] .card-surface,
[data-theme="light"] .glow-card {
    background-color: #FFFFFF !important;
    border-color: #E2E8F0 !important;
    box-shadow: 0 4px 24px rgba(9, 9, 11, 0.06) !important;
}

html.light .project-pill,
[data-theme="light"] .project-pill {
    background-color: #EDF7F2 !important;
    border-color: #E2E8F0 !important;
}

html.light .project-pill span,
[data-theme="light"] .project-pill span {
    color: #09090b !important;
}

html.light .carousel-nav-btn,
[data-theme="light"] .carousel-nav-btn {
    background-color: #FFFFFF !important;
    border-color: #E2E8F0 !important;
    color: #09090b !important;
    box-shadow: 0 2px 8px rgba(9, 9, 11, 0.06) !important;
}

html.light .carousel-nav-btn:hover,
[data-theme="light"] .carousel-nav-btn:hover {
    background-color: #1AA170 !important;
    border-color: #1AA170 !important;
    color: #FFFFFF !important;
}

html.light .solution-card-highlight,
[data-theme="light"] .solution-card-highlight {
    background-color: #FFFFFF !important;
    border-color: #27B776 !important;
    box-shadow: 0 4px 30px rgba(34, 181, 115, 0.15) !important;
}

html.light .solution-card-default,
[data-theme="light"] .solution-card-default {
    background-color: #FFFFFF !important;
    border-color: #E2E8F0 !important;
    box-shadow: 0 2px 12px rgba(9, 9, 11, 0.04) !important;
}

html.light .solution-card-default:hover,
[data-theme="light"] .solution-card-default:hover {
    background-color: #F8FFFB !important;
    border-color: #27B776 !important;
}

html.light .solution-category-badge,
[data-theme="light"] .solution-category-badge {
    background-color: #EDF7F2 !important;
    border-color: #27B776 !important;
    color: #1AA170 !important;
}

html.light .solution-card h3,
html.light .solution-card .text-white,
[data-theme="light"] .solution-card h3,
[data-theme="light"] .solution-card .text-white {
    color: #09090b !important;
}

html.light .solution-card .border-\[\#1f2e26\],
[data-theme="light"] .solution-card .border-\[\#1f2e26\] {
    border-color: #E2E8F0 !important;
}

html.light .carousel-dot,
[data-theme="light"] .carousel-dot {
    background-color: #CBD5E1 !important;
}

html.light .carousel-dot-active,
[data-theme="light"] .carousel-dot-active {
    background-color: #1AA170 !important;
}

html.light .methodology-card,
[data-theme="light"] .methodology-card {
    background-color: #FFFFFF !important;
    border-color: #E2E8F0 !important;
}

html.light .methodology-card:hover,
[data-theme="light"] .methodology-card:hover {
    background-color: #F8FFFB !important;
    border-color: #27B776 !important;
}

html.light .audience-card,
[data-theme="light"] .audience-card {
    background-color: #FFFFFF !important;
    border-color: #E2E8F0 !important;
    box-shadow: 0 2px 12px rgba(9, 9, 11, 0.04) !important;
}

html.light .audience-card:hover,
[data-theme="light"] .audience-card:hover {
    background-color: #F8FFFB !important;
    border-color: #27B776 !important;
    box-shadow: 0 4px 20px rgba(34, 181, 115, 0.1) !important;
}

html.light .audience-cta,
[data-theme="light"] .audience-cta {
    background-color: #FFFFFF !important;
    border-color: #E2E8F0 !important;
    color: #09090b !important;
}

html.light .marquee-item,
[data-theme="light"] .marquee-item {
    background-color: #FFFFFF !important;
    border-color: #E2E8F0 !important;
}

html.light .marquee-symbol,
[data-theme="light"] .marquee-symbol {
    background-color: #EDF7F2 !important;
    border-color: #27B776 !important;
    color: #09090b !important;
}

html.light .marquee-item:hover .marquee-symbol,
[data-theme="light"] .marquee-item:hover .marquee-symbol {
    background-color: #1AA170 !important;
    color: #FFFFFF !important;
}

html.light .ecosystem-node-btn-layer1,
[data-theme="light"] .ecosystem-node-btn-layer1 {
    background-color: #FFFFFF !important;
    border-color: #27B776 !important;
    color: #09090b !important;
    box-shadow: 0 2px 12px rgba(34, 181, 115, 0.12) !important;
}

html.light .ecosystem-node-btn-layer1:hover,
[data-theme="light"] .ecosystem-node-btn-layer1:hover {
    background-color: #EDF7F2 !important;
    border-color: #1AA170 !important;
}

html.light .ecosystem-node-btn-layer2,
[data-theme="light"] .ecosystem-node-btn-layer2 {
    background-color: #FFFFFF !important;
    border-color: #27B776 !important;
    color: #09090b !important;
}

html.light .ecosystem-node-btn-layer2:hover,
[data-theme="light"] .ecosystem-node-btn-layer2:hover {
    background-color: #EDF7F2 !important;
}

html.light .ecosystem-node-btn-layer3,
[data-theme="light"] .ecosystem-node-btn-layer3 {
    background-color: #FFFFFF !important;
    border-color: #E2E8F0 !important;
    color: #334155 !important;
}

html.light .ecosystem-node-btn-layer3:hover,
[data-theme="light"] .ecosystem-node-btn-layer3:hover {
    background-color: #EDF7F2 !important;
    color: #09090b !important;
}

html.light .ecosystem-node-tooltip,
[data-theme="light"] .ecosystem-node-tooltip {
    background-color: #FFFFFF !important;
    border-color: #27B776 !important;
    box-shadow: 0 12px 40px rgba(9, 9, 11, 0.1) !important;
}

html.light .ecosystem-tooltip-desc,
[data-theme="light"] .ecosystem-tooltip-desc {
    color: #1a1612 !important;
}

html.light .footer-links a,
html.light .footer-links button,
[data-theme="light"] .footer-links a,
[data-theme="light"] .footer-links button {
    color: #0f766e !important;
}

html.light .footer-attend-copy p,
html.light .footer-channel-label,
html.light .footer-bottom > p,
html.light .footer-social,
[data-theme="light"] .footer-attend-copy p,
[data-theme="light"] .footer-channel-label,
[data-theme="light"] .footer-bottom > p,
[data-theme="light"] .footer-social {
    color: #64748b !important;
}

html.light .footer-attend-lead,
html.light .footer-attend-strong,
html.light .footer-channel-value,
[data-theme="light"] .footer-attend-lead,
[data-theme="light"] .footer-attend-strong,
[data-theme="light"] .footer-channel-value {
    color: #09090b !important;
}

html.light .footer-links a:hover,
html.light .footer-links button:hover,
html.light .footer-channel:hover .footer-channel-value,
html.light .footer-social:hover,
[data-theme="light"] .footer-links a:hover,
[data-theme="light"] .footer-links button:hover,
[data-theme="light"] .footer-channel:hover .footer-channel-value,
[data-theme="light"] .footer-social:hover {
    color: #0f5132 !important;
}

html.light .footer-heading,
html.light .footer-attend-title,
[data-theme="light"] .footer-heading,
[data-theme="light"] .footer-attend-title {
    color: #14945a !important;
}

html.light .footer-col-head,
html.light .footer-attend-title,
[data-theme="light"] .footer-col-head,
[data-theme="light"] .footer-attend-title {
    border-bottom-color: #d7dee6;
}

html.light .footer-bottom,
[data-theme="light"] .footer-bottom {
    border-color: #d7dee6;
    background: transparent;
}

html.light #footer-section h4,
html.light #footer-section .text-white,
[data-theme="light"] #footer-section h4,
[data-theme="light"] #footer-section .text-white {
    color: #09090b !important;
}

html.light #footer-section .footer-heading,
html.light #footer-section .footer-attend-title,
[data-theme="light"] #footer-section .footer-heading,
[data-theme="light"] #footer-section .footer-attend-title {
    color: #14945a !important;
}

html.light #footer-section .border-gmit-border\/60,
[data-theme="light"] #footer-section .border-gmit-border\/60 {
    border-color: #E2E8F0 !important;
}

html.light #contact-modal,
[data-theme="light"] #contact-modal {
    background-color: rgba(255, 255, 255, 0.88) !important;
}

html.light #contact-modal > div,
[data-theme="light"] #contact-modal > div {
    background-color: #FFFFFF !important;
    border-color: #27B776 !important;
    color: #09090b !important;
    box-shadow: 0 20px 60px rgba(9, 9, 11, 0.12) !important;
}

html.light #contact-modal h3,
[data-theme="light"] #contact-modal h3 {
    color: #09090b !important;
}

html.light #scroll-to-top-btn,
[data-theme="light"] #scroll-to-top-btn {
    background-color: #FFFFFF !important;
    border-color: #27B776 !important;
    color: #1AA170 !important;
    box-shadow: 0 4px 20px rgba(34, 181, 115, 0.15) !important;
}

html.light .theme-btn,
[data-theme="light"] .theme-btn {
    color: #64748B !important;
}

html.light .theme-btn.theme-active,
[data-theme="light"] .theme-btn.theme-active {
    background-color: #EDF7F2 !important;
    color: #1AA170 !important;
}

html.light .badge-pill,
[data-theme="light"] .badge-pill {
    background-color: #EDF7F2 !important;
    border-color: #27B776 !important;
    color: #1AA170 !important;
}

/* Botões verdes mantêm texto branco */
html.light .btn-gradient,
html.light .btn-gradient span,
html.light .solution-cta-btn,
html.light .solution-cta-btn span,
html.light .bg-\[\#18a968\],
html.light .bg-\[\#18a968\] *,
html.light .ecosystem-tooltip-cta,
[data-theme="light"] .btn-gradient,
[data-theme="light"] .btn-gradient span,
[data-theme="light"] .solution-cta-btn,
[data-theme="light"] .solution-cta-btn span,
[data-theme="light"] .bg-\[\#18a968\],
[data-theme="light"] .bg-\[\#18a968\] *,
[data-theme="light"] .ecosystem-tooltip-cta {
    color: #FFFFFF !important;
}

html.light #numeros-section .rounded-2xl,
html.light #numeros-section .rounded-3xl,
[data-theme="light"] #numeros-section .rounded-2xl,
[data-theme="light"] #numeros-section .rounded-3xl {
    box-shadow: 0 10px 40px rgba(9, 9, 11, 0.08) !important;
}

html.light #consultoria-section .bg-gmit-dark,
[data-theme="light"] #consultoria-section .bg-gmit-dark {
    background-color: #EDF7F2 !important;
    border-color: #27B776 !important;
}

/* Logo MIT no footer mantém texto branco no badge verde */
html.light #footer-section .rounded-xl[style*="gradient"],
[data-theme="light"] #footer-section .rounded-xl[style*="gradient"] {
    color: #FFFFFF !important;
}
