/* ==========================================================================
   DEVHQ Studio — Tema Claro Minimalista (v9)
   Carregado DEPOIS de custom.css; sobrescreve o visual escuro anterior.
   Inspiração: Apple / Stripe — fundo off-white, tinta preta, 1 acento índigo.
   ========================================================================== */

:root {
    --lt-bg: #ffffff;
    --lt-bg-soft: #f7f7f5;
    --lt-bg-tint: #f1f1ee;
    --lt-ink: #0b0b0f;
    --lt-ink-2: #3f3f46;
    --lt-muted: #71717a;
    --lt-line: #e8e8e4;
    --lt-line-strong: #d4d4cf;
    --lt-accent: #4f46e5;
    --lt-accent-soft: rgba(79, 70, 229, .08);
    --lt-shadow-sm: 0 1px 2px rgba(11, 11, 15, .05);
    --lt-shadow-md: 0 10px 30px -12px rgba(11, 11, 15, .14);

    /* Remapeia tokens antigos */
    --bg-canvas: var(--lt-bg);
    --bg-surface: var(--lt-bg);
    --bg-surface-elevated: var(--lt-bg-soft);
    --bg-card: #ffffff;
    --border-glass: var(--lt-line);
    --border-glass-hover: var(--lt-line-strong);
    --border-glass-active: var(--lt-ink);
    --text-pure: var(--lt-ink);
    --text-primary: var(--lt-ink);
    --text-secondary: var(--lt-ink-2);
    --text-tertiary: var(--lt-muted);
    --text-dim: var(--lt-muted);
    --v8-canvas: var(--lt-bg-soft);
    --v8-navy: var(--lt-ink);
    --v8-navy-soft: var(--lt-ink-2);
    --v8-ink: var(--lt-ink);
    --v8-ink-soft: var(--lt-ink-2);
    --v8-muted: var(--lt-muted);
    --v8-line: var(--lt-line);
    --v8-cobalt: var(--lt-accent);
    --v8-cobalt-dark: var(--lt-accent);
    --v8-cyan: var(--lt-accent);
    --v8-azure: var(--lt-accent);
    --v8-lime: var(--lt-accent);
    --v8-shadow-sm: var(--lt-shadow-sm);
    --v8-shadow-md: var(--lt-shadow-md);
    --v8-shadow-lg: var(--lt-shadow-md);
}

html, body.site-public {
    background: var(--lt-bg) !important;
    color: var(--lt-ink);
}
body.site-public { font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }
body.site-public h1, body.site-public h2, body.site-public h3 {
    color: var(--lt-ink);
    font-family: var(--font-display);
    letter-spacing: -0.03em;
}

/* Tailwind utilitários escuros -> claros (apenas na página pública quando NÃO for ou estiver dentro de elemento escuro) */
body.site-public .text-white:not(:where([class*="bg-black"], [class*="bg-zinc-9"], [class*="bg-zinc-8"], [class*="bg-zinc-7"], [class*="bg-obsidian-950"], [class*="bg-[#0"], [class*="btn-primary"], .project-card__category, [class*="bg-black"] *, [class*="bg-zinc-9"] *, [class*="bg-zinc-8"] *, [class*="bg-zinc-7"] *, [class*="bg-obsidian-950"] *, [class*="bg-[#0"] *, [class*="btn-primary"] *, .case-gallery *)) { color: var(--lt-ink) !important; }
body.site-public .text-platinum-300,
body.site-public .text-platinum-400 { color: var(--lt-ink-2) !important; }
body.site-public .text-platinum-500 { color: var(--lt-muted) !important; }
body.site-public .bg-obsidian-950,
body.site-public .bg-obsidian-900,
body.site-public .bg-obsidian-850 { background-color: var(--lt-bg-soft) !important; }
body.site-public .bg-obsidian-800 { background-color: var(--lt-bg-tint) !important; }
body.site-public .border-white\/10,
body.site-public .border-white\/5,
body.site-public .border-white\/20 { border-color: var(--lt-line) !important; }
body.site-public .bg-white { background-color: #ffffff; }
body.site-public .bg-white.text-obsidian-950,
body.site-public .text-obsidian-950 { background-color: var(--lt-ink) !important; color: #fff !important; }
body.site-public input, body.site-public select, body.site-public textarea {
    color: var(--lt-ink) !important;
    background-color: #fff !important;
    border-color: var(--lt-line-strong) !important;
}
body.site-public input::placeholder, body.site-public textarea::placeholder { color: #a1a1aa !important; }
body.site-public input:focus, body.site-public select:focus, body.site-public textarea:focus {
    border-color: var(--lt-ink) !important;
    box-shadow: 0 0 0 3px rgba(11, 11, 15, .08);
}

/* Barra de disponibilidade */
.availability-bar { background: var(--lt-bg-soft) !important; color: var(--lt-ink-2) !important; border-bottom: 1px solid var(--lt-line); }
.availability-bar p { color: var(--lt-ink-2) !important; }
.availability-dot { background: #10b981 !important; box-shadow: 0 0 0 4px rgba(16,185,129,.15) !important; }

/* Header */
.site-header { background: rgba(255,255,255,.82) !important; backdrop-filter: saturate(180%) blur(16px); border-bottom: 1px solid var(--lt-line) !important; box-shadow: none !important; }
.brand-copy strong { color: var(--lt-ink) !important; }
.brand-copy small { color: var(--lt-muted) !important; }
.brand-mark { background: transparent !important; box-shadow: none !important; border: 0 !important; }
.site-nav a { color: var(--lt-ink-2) !important; }
.site-nav a:hover { color: var(--lt-ink) !important; background: var(--lt-bg-soft) !important; }
.header-contact { color: var(--lt-ink-2) !important; background: transparent !important; border-color: var(--lt-line) !important; }
.mobile-menu-button { color: var(--lt-ink) !important; background: var(--lt-bg-soft) !important; border-color: var(--lt-line) !important; }
.mobile-nav { background: #fff !important; border-bottom: 1px solid var(--lt-line) !important; }
.mobile-nav a { color: var(--lt-ink) !important; border-color: var(--lt-line) !important; }

/* Botões */
.btn-primary, .new-hero .btn-primary {
    background: var(--lt-ink) !important; color: #fff !important; border: 1px solid var(--lt-ink) !important;
    box-shadow: var(--lt-shadow-sm) !important; border-radius: 999px !important;
}
.btn-primary:hover, .new-hero .btn-primary:hover { background: #26262c !important; transform: translateY(-1px); }
.btn-primary *, .btn-primary span { color: #fff !important; }
.btn-secondary { background: #fff !important; color: var(--lt-ink) !important; border: 1px solid var(--lt-line-strong) !important; border-radius: 999px !important; box-shadow: none !important; }
.btn-secondary:hover { background: var(--lt-bg-soft) !important; border-color: var(--lt-ink) !important; }

/* Hero */
.new-hero { background: linear-gradient(180deg, #fff 0%, var(--lt-bg-soft) 100%) !important; color: var(--lt-ink) !important; border-bottom: 1px solid var(--lt-line); }
.new-hero::before, .new-hero::after { opacity: 0 !important; }
.hero-orb { opacity: .5 !important; filter: blur(90px); background: radial-gradient(circle, rgba(79,70,229,.18), transparent 70%) !important; }
.new-hero h1 { color: var(--lt-ink) !important; background: none !important; -webkit-text-fill-color: var(--lt-ink) !important; letter-spacing: -0.045em; }
.new-hero__lead, .new-hero p { color: var(--lt-ink-2) !important; }
.hero-kicker { background: #fff !important; border: 1px solid var(--lt-line) !important; color: var(--lt-ink-2) !important; box-shadow: var(--lt-shadow-sm); }
.hero-kicker__icon { background: var(--lt-accent) !important; color: #fff !important; }
.hero-trust p, .hero-trust strong { color: var(--lt-ink-2) !important; }
.hero-trust strong { color: var(--lt-ink) !important; }
.hero-trust__avatars span { background: #fff !important; color: var(--lt-ink) !important; border: 1px solid var(--lt-line) !important; }

/* Janela de produto do hero */
.product-window { background: #fff !important; border: 1px solid var(--lt-line) !important; box-shadow: 0 30px 80px -30px rgba(11,11,15,.22) !important; color: var(--lt-ink) !important; }
.product-window__topbar { background: var(--lt-bg-soft) !important; border-bottom: 1px solid var(--lt-line) !important; }
.window-address, .window-status { color: var(--lt-muted) !important; }
.product-sidebar { background: var(--lt-bg-soft) !important; border-right: 1px solid var(--lt-line) !important; color: var(--lt-muted) !important; }
.product-sidebar__logo { background: #fff !important; border: 1px solid var(--lt-line); }
.product-content, .product-heading strong, .product-metrics strong, .product-chart__header strong, .product-tasks strong { color: var(--lt-ink) !important; }
.product-heading span, .product-metrics span, .product-metrics small, .product-chart__header span, .product-tasks small, .product-date { color: var(--lt-muted) !important; }
.product-metrics article, .product-chart, .product-tasks > div { background: var(--lt-bg-soft) !important; border: 1px solid var(--lt-line) !important; }
.chart-bars span { background: linear-gradient(180deg, var(--lt-accent), #a5b4fc) !important; }
.chart-badge { background: var(--lt-accent-soft) !important; color: var(--lt-accent) !important; }
.floating-note { background: #fff !important; border: 1px solid var(--lt-line) !important; box-shadow: var(--lt-shadow-md) !important; color: var(--lt-ink) !important; }
.floating-note span { color: var(--lt-muted) !important; }

/* Faixa de expertise / marquee */
.expertise-strip, .marquee-container { background: #fff !important; border-top: 1px solid var(--lt-line) !important; border-bottom: 1px solid var(--lt-line) !important; }
.marquee-content, .marquee-content * { color: var(--lt-muted) !important; text-shadow: none !important; }
.expertise-strip *, .hero-stats *, .hero-metrics * { color: var(--lt-ink-2); }
.expertise-strip strong { color: var(--lt-ink) !important; }

/* Seções */
.public-section, .public-section--soft, .process-section, .calculator-section,
.testimonials-section, .faq-section { background: #fff !important; color: var(--lt-ink) !important; }
.public-section--soft, .calculator-section, .faq-section { background: var(--lt-bg-soft) !important; }
.public-section--ink { background: var(--lt-bg-soft) !important; color: var(--lt-ink) !important; border-top: 1px solid var(--lt-line); border-bottom: 1px solid var(--lt-line); }
.public-section--ink::before, .public-section--ink::after { display: none !important; }
.public-section--ink h2, .public-section--ink h3, .public-section--ink > div > .text-center h2 { color: var(--lt-ink) !important; }
.public-section--ink p, .public-section--ink > div > .text-center > p { color: var(--lt-ink-2) !important; }
.section-eyebrow, .public-section--ink .section-eyebrow { color: var(--lt-accent) !important; background: var(--lt-accent-soft) !important; border: 0 !important; letter-spacing: .08em; }
.public-section h2 { color: var(--lt-ink) !important; }
.public-section p { color: var(--lt-ink-2); }

/* Cards genéricos */
.clean-card, .card-featured, .project-card, .conversion-card, .service-card, .process-grid article,
.testimonial-card, .faq-item, .calculator-section .clean-card {
    background: #fff !important; border: 1px solid var(--lt-line) !important; border-radius: 20px !important;
    box-shadow: var(--lt-shadow-sm) !important; color: var(--lt-ink) !important;
    backdrop-filter: none !important;
}
.clean-card:hover, .project-card:hover, .conversion-card:hover, .service-card:hover {
    border-color: var(--lt-line-strong) !important; box-shadow: var(--lt-shadow-md) !important; transform: translateY(-2px);
}
.process-grid article:hover { background: var(--lt-bg-soft) !important; }
.process-grid article:hover * { color: var(--lt-ink) !important; }
.project-card > div:first-child { background: var(--lt-bg-soft) !important; }
.project-card h3, .conversion-card h3, .service-card h3 { color: var(--lt-ink) !important; }
.project-card p, .conversion-card p, .service-card p, .service-card li, .conversion-card li { color: var(--lt-ink-2) !important; }
.badge-tech { background: var(--lt-bg-soft) !important; color: var(--lt-ink-2) !important; border: 1px solid var(--lt-line) !important; }
.service-card--featured { border-color: var(--lt-ink) !important; box-shadow: var(--lt-shadow-md) !important; }
.service-card--featured::before { background: var(--lt-ink) !important; }
.conversion-card__cta { background: var(--lt-ink) !important; color: #fff !important; border-radius: 999px !important; }
.conversion-card__cta * { color: #fff !important; }
.conversion-card [class*="icon"] { background: var(--lt-accent-soft) !important; color: var(--lt-accent) !important; }

/* Simulador: bloco inferior escuro -> claro */
#simulador .clean-card > div:last-child { background: var(--lt-bg-soft) !important; border-top: 1px solid var(--lt-line); color: var(--lt-ink) !important; }
#simulador .clean-card > div:last-child * { color: var(--lt-ink); }
#simulador .btn-primary * { color: #fff !important; }

/* Contato */
.contact-section { background: var(--lt-bg-soft) !important; }
.contact-section h2, .contact-section h3 { color: var(--lt-ink) !important; }
.contact-section p, .contact-section a { color: var(--lt-ink-2) !important; }
.contact-section .btn-primary, .contact-section .btn-primary * { color: #fff !important; }

/* Rodapé */
.site-footer { background: var(--lt-bg-soft) !important; color: var(--lt-ink-2) !important; border-top: 1px solid var(--lt-line); }
.site-footer h2, .site-footer strong { color: var(--lt-ink) !important; }
.site-footer span, .site-footer p, .site-footer a { color: var(--lt-ink-2) !important; }
.site-footer a:hover { color: var(--lt-ink) !important; }
.site-footer__cta { background: #fff !important; border: 1px solid var(--lt-line) !important; box-shadow: var(--lt-shadow-sm); }
.site-footer__cta .btn-primary, .site-footer__cta .btn-primary * { color: #fff !important; }
.site-footer__bottom { border-top: 1px solid var(--lt-line) !important; }

/* Modal e botão WhatsApp */
.budget-modal { background: rgba(11,11,15,.45) !important; backdrop-filter: blur(6px); }
.budget-modal__panel { background: #fff !important; border: 1px solid var(--lt-line) !important; }
.whatsapp-float a { background: var(--lt-ink) !important; color: #fff !important; box-shadow: var(--lt-shadow-md) !important; }
.whatsapp-float a span, .whatsapp-float a i { color: #fff !important; }

::-webkit-scrollbar-track { background: var(--lt-bg-soft); }
::-webkit-scrollbar-thumb { background: var(--lt-line-strong); }

/* Ajustes de escala do hero */
.new-hero { padding-top: clamp(3rem, 6vw, 5rem) !important; padding-bottom: clamp(3rem, 6vw, 5rem) !important; min-height: 0 !important; }
.new-hero h1 { font-size: clamp(2.5rem, 5vw, 4.25rem) !important; line-height: 1.04 !important; font-weight: 800; max-width: 14ch; }
.new-hero__lead { font-size: 1.125rem !important; max-width: 36rem; }
.hero-kicker { padding: 4px 14px 4px 4px; border-radius: 999px !important; }
.public-section h2 { font-size: clamp(1.9rem, 3.4vw, 2.75rem) !important; line-height: 1.1 !important; }

/* Faixa de prova do hero */
.hero-proof { margin-top: clamp(2.5rem, 5vw, 4rem) !important; border-top: 1px solid var(--lt-line) !important; }
.hero-proof > span { color: var(--lt-muted) !important; }
.hero-proof > div { border-left: 1px solid var(--lt-line) !important; }
.hero-proof strong { color: var(--lt-ink) !important; }
.hero-proof small { color: var(--lt-muted) !important; font-size: .72rem !important; }
.whatsapp-float svg, .whatsapp-float i { color: #fff !important; stroke: #fff !important; }

/* Banner de fechamento */
.conversion-close { background: #fff !important; border: 1px solid var(--lt-line) !important; box-shadow: var(--lt-shadow-md) !important; color: var(--lt-ink) !important; }
.conversion-close::before, .conversion-close::after { display: none !important; }
.conversion-close h3 { color: var(--lt-ink) !important; }
.conversion-close p, .conversion-close small, .conversion-close .conversion-assurances span { color: var(--lt-ink-2) !important; }
.conversion-close__action a { color: var(--lt-ink) !important; text-decoration: underline; text-underline-offset: 4px; }
.conversion-assurances span { background: var(--lt-bg-soft) !important; border: 1px solid var(--lt-line) !important; }
.public-section--ink .conversion-close .btn-primary, .conversion-close .btn-primary * { color: #fff !important; }
.section-eyebrow::before { background: var(--lt-accent) !important; }

/* Espaçamento de letras menos apertado */
body.site-public h1, body.site-public h2, body.site-public h3, .public-section h2, .public-section h3 { letter-spacing: -0.028em !important; word-spacing: .04em; }
.new-hero h1 { letter-spacing: -0.035em !important; }

/* CTA do rodape */
.site-footer__cta { padding: clamp(1.75rem, 4vw, 3rem) !important; border-radius: 24px !important; align-items: center; margin-bottom: 3rem; }
.site-footer__cta span { color: var(--lt-accent) !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .75rem; }
.site-footer__cta h2 { font-size: clamp(1.75rem, 3vw, 2.5rem) !important; margin-top: .5rem; }

/* Contato: rotulos e textos auxiliares */
.contact-section span, .contact-section small, .contact-section div > span { color: var(--lt-muted) !important; }
.contact-section strong, .contact-section a strong { color: var(--lt-ink) !important; }
.contact-section .section-eyebrow { color: var(--lt-accent) !important; }
.contact-section label { color: var(--lt-ink-2) !important; }
.contact-section button[type=submit] { background: var(--lt-ink) !important; color: #fff !important; }
.contact-section button[type=submit] span { color: #fff !important; }

/* ==========================================================================
   Banners de projeto v9 (01 / Projetos selecionados)
   ========================================================================== */
#portfolio .grid { gap: 1.75rem; }
.project-card--v9 { display: flex; flex-direction: column; overflow: hidden; padding: 0 !important; position: relative; transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s cubic-bezier(.16,1,.3,1); }
.project-card--v9:hover { transform: translateY(-5px); box-shadow: 0 16px 32px -8px rgba(0,0,0,.08); }
.project-card--animate-ready { opacity: 0; transform: translateY(22px); transition: opacity .55s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1), box-shadow .3s cubic-bezier(.16,1,.3,1); }
.project-card--animate-ready.project-card--visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
    .project-card--animate-ready { opacity: 1 !important; transform: none !important; transition: none !important; }
}
.no-js .project-card--animate-ready { opacity: 1 !important; transform: none !important; }
.project-card__media { position: relative; aspect-ratio: 16 / 10; background: var(--lt-bg-tint); overflow: hidden; border-bottom: 1px solid var(--lt-line); }
.project-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.project-card--v9:hover .project-card__media img { transform: scale(1.04); }
.project-card__media.is-empty { background: repeating-linear-gradient(135deg, var(--lt-bg-soft) 0 12px, var(--lt-bg-tint) 12px 24px); }
.project-card__chrome { position: absolute; top: 12px; left: 12px; z-index: 3; display: flex; gap: 5px; padding: 6px 9px; background: rgba(255,255,255,.88); backdrop-filter: blur(8px); border: 1px solid var(--lt-line); border-radius: 999px; }
.project-card__chrome span { width: 7px; height: 7px; border-radius: 50%; background: #d4d4cf; }
.project-card__chrome span:nth-child(1) { background: #fb7185; } .project-card__chrome span:nth-child(2) { background: #fbbf24; } .project-card__chrome span:nth-child(3) { background: #34d399; }
.project-card__index { position: absolute; right: 14px; bottom: 10px; z-index: 3; font: 800 2.25rem/1 var(--font-display); color: #fff; mix-blend-mode: difference; opacity: .85; letter-spacing: -.04em; }
.project-card__destaque-pill { position: absolute; bottom: 12px; left: 12px; z-index: 3; display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 999px; background: rgba(251,191,36,.92); color: #78350f !important; font-size: .65rem; font-weight: 700; backdrop-filter: blur(4px); box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.project-card__category { position: absolute; top: 12px; right: 12px; z-index: 3; padding: 5px 11px; border-radius: 999px; background: var(--lt-ink); color: #fff !important; font-size: .68rem; font-weight: 600; letter-spacing: .02em; }
.project-card__overlay { position: absolute; inset: 0; z-index: 4; display: flex; align-items: center; justify-content: center; background: rgba(11,11,15,.4); backdrop-filter: blur(2px); opacity: 0; transition: opacity .25s; }
.project-card__overlay span { display: inline-flex; align-items: center; gap: .4rem; padding: .6rem 1.1rem; border-radius: 999px; background: #fff; color: var(--lt-ink) !important; font-size: .78rem; font-weight: 700; transform: translateY(8px); transition: transform .25s; box-shadow: var(--lt-shadow-md); }
.project-card--v9:hover .project-card__overlay, .project-card__overlay:focus-visible { opacity: 1; }
.project-card--v9:hover .project-card__overlay span { transform: none; }
.project-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.35rem 1.4rem 1.4rem; }
.project-card__segment { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--lt-accent); margin-bottom: .25rem; display: block; }
.project-card__body h3 { font-size: 1.15rem !important; font-weight: 700; margin: 0; color: var(--lt-ink); }
.project-card__body h3 a { color: inherit; text-decoration: none; }
.project-card__body h3 a:hover { color: var(--lt-accent); }
.project-card__body p { margin: .5rem 0 0; font-size: .86rem; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.75rem; color: var(--lt-ink-2); }
.project-card__result { display: flex; align-items: flex-start; gap: .45rem; margin: .85rem 0 0; padding: .55rem .75rem; border-radius: 10px; background: rgba(16,185,129,.07); border: 1px solid rgba(16,185,129,.2); font-size: .76rem; font-weight: 600; color: #065f46; line-height: 1.4; }
.project-card__result i, .project-card__result svg { width: 14px; height: 14px; color: #059669; flex-shrink: 0; margin-top: 1px; }
.project-card__quote { margin: .75rem 0 0; padding: .5rem .75rem; border-left: 2px solid #10b981; background: var(--lt-bg-soft); border-radius: 0 8px 8px 0; font-size: .72rem; color: var(--lt-ink-2); line-height: 1.4; }
.project-card__quote p { margin: 0; font-style: italic; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.project-card__quote cite { display: block; margin-top: 3px; font-style: normal; font-weight: 600; font-size: .66rem; color: var(--lt-muted); }
.project-card__tech { display: flex; flex-wrap: wrap; gap: .4rem; margin: .85rem 0 0; padding: 0; list-style: none; }
.project-card__tech li { padding: .22rem .6rem; border-radius: 999px; background: var(--lt-bg-soft); border: 1px solid var(--lt-line); color: var(--lt-ink-2); font-size: .7rem; font-weight: 500; }
.project-card__tech li.is-more { color: var(--lt-muted); }
.project-card__footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: auto; padding-top: 1.1rem; border-top: 1px solid var(--lt-line); margin-top: 1.15rem; flex-wrap: wrap; }
.project-card__cta { display: inline-flex; align-items: center; gap: .3rem; font-size: .82rem; font-weight: 700; color: var(--lt-ink) !important; }
.project-card__cta:hover { color: var(--lt-accent) !important; }
.project-card__actions { display: inline-flex; align-items: center; gap: .35rem; }
.project-card__case { padding: .34rem .7rem; border: 1px solid var(--lt-line); border-radius: 999px; font-size: .72rem; font-weight: 600; color: var(--lt-ink-2) !important; background: var(--lt-bg-soft); transition: all .2s; }
.project-card__case:hover { background: var(--lt-ink); color: #fff !important; border-color: var(--lt-ink); }
.project-card__demo { padding: .34rem .75rem; border: 1px solid var(--lt-line-strong); border-radius: 999px; font-size: .72rem; font-weight: 600; color: var(--lt-ink) !important; transition: all .2s; }
.project-card__demo:hover { background: var(--lt-ink); color: #fff !important; border-color: var(--lt-ink); }
.portfolio-filter-bar { background: var(--lt-bg-soft) !important; border-color: var(--lt-line) !important; }
#portfolio .section-heading .portfolio-filter-bar button.text-white,
#portfolio .section-heading .portfolio-filter-bar button[class*="bg-[#0b0b0f]"],
#portfolio .portfolio-filter-bar button.text-white,
#portfolio .portfolio-filter-bar button[class*="bg-[#0b0b0f]"],
#portfolio .portfolio-filter-bar button[class*="bg-black"],
#portfolio .portfolio-filter-bar button[class*="bg-obsidian"],
#portfolio button[class*="bg-[#0b0b0f]"],
.portfolio-filter-bar button.text-white,
.portfolio-filter-bar button[class*="bg-[#0b0b0f]"] {
    color: #ffffff !important;
}
.case-gallery { background: #fff !important; border-color: var(--lt-line) !important; }

/* ==========================================================================
   Contraste & Legibilidade: Elementos com Fundo Escuro em body.site-public
   Garante 100% de legibilidade (texto branco puro sobre fundos pretos/escuros)
   ========================================================================== */

/* 1. Qualquer botão, link, badge ou elemento com classe de fundo escuro */
body.site-public .bg-black,
body.site-public [class*="bg-black"],
body.site-public .bg-zinc-900,
body.site-public [class*="bg-zinc-900"],
body.site-public .bg-zinc-950,
body.site-public [class*="bg-zinc-950"],
body.site-public .bg-zinc-800,
body.site-public [class*="bg-zinc-800"],
body.site-public .bg-zinc-700,
body.site-public [class*="bg-zinc-700"],
body.site-public .bg-obsidian-950,
body.site-public [class*="bg-obsidian-950"],
body.site-public [class*="bg-[#0b0b0f]"],
body.site-public [class*="bg-[#0d0f15]"],
body.site-public [class*="bg-[#07080b]"],
body.site-public .btn-primary,
body.site-public [class*="btn-primary"],
body.site-public button[class*="bg-obsidian"],
body.site-public a[class*="bg-obsidian"],
body.site-public span[class*="bg-obsidian"],
body.site-public .project-card__category {
    color: #ffffff !important;
}

/* Hover em botões e links escuros */
body.site-public a[class*="bg-black"]:hover,
body.site-public a[class*="bg-zinc-900"]:hover,
body.site-public a[class*="bg-zinc-950"]:hover,
body.site-public a[class*="bg-zinc-800"]:hover,
body.site-public a[class*="bg-obsidian-950"]:hover,
body.site-public button[class*="bg-black"]:hover,
body.site-public button[class*="bg-zinc-900"]:hover,
body.site-public button[class*="bg-zinc-950"]:hover,
body.site-public button[class*="bg-zinc-800"]:hover,
body.site-public button[class*="bg-obsidian-950"]:hover,
body.site-public .btn-primary:hover,
body.site-public [class*="btn-primary"]:hover {
    color: #ffffff !important;
}

/* 2. Filhos de botões, links, badges e tags escuros (span, texto e ícones) */
body.site-public a[class*="bg-black"] span,
body.site-public a[class*="bg-zinc-900"] span,
body.site-public a[class*="bg-zinc-950"] span,
body.site-public a[class*="bg-zinc-800"] span,
body.site-public a[class*="bg-obsidian-950"] span,
body.site-public a[class*="bg-[#0b0b0f]"] span,
body.site-public a[class*="bg-[#0d0f15]"] span,
body.site-public button[class*="bg-black"] span,
body.site-public button[class*="bg-zinc-900"] span,
body.site-public button[class*="bg-zinc-950"] span,
body.site-public button[class*="bg-zinc-800"] span,
body.site-public button[class*="bg-obsidian-950"] span,
body.site-public button[class*="bg-[#0b0b0f]"] span,
body.site-public button[class*="bg-[#0d0f15]"] span,
body.site-public span[class*="bg-zinc-900"] span,
body.site-public span[class*="bg-zinc-950"] span,
body.site-public span[class*="bg-zinc-800"] span,
body.site-public span[class*="bg-black"] span,
body.site-public span[class*="bg-obsidian-950"] span,
body.site-public div[class*="bg-black"] span:not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public div[class*="bg-zinc-900"] span:not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public div[class*="bg-zinc-950"] span:not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public div[class*="bg-zinc-800"] span:not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public div[class*="bg-obsidian-950"] span:not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public .btn-primary span,
body.site-public [class*="btn-primary"] span,
body.site-public .project-card__category span {
    color: #ffffff !important;
}

/* Ícones Lucide dentro de botões e links escuros (preserva acentos quando especificados) */
body.site-public a[class*="bg-black"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-black"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-zinc-900"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-zinc-900"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-zinc-950"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-zinc-950"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-zinc-800"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-zinc-800"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-obsidian-950"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-obsidian-950"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-[#0b0b0f]"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public a[class*="bg-[#0b0b0f]"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-black"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-black"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-zinc-900"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-zinc-900"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-zinc-950"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-zinc-950"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-zinc-800"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-zinc-800"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-obsidian-950"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-obsidian-950"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-[#0b0b0f]"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public button[class*="bg-[#0b0b0f]"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public span[class*="bg-zinc-900"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public span[class*="bg-zinc-900"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public span[class*="bg-black"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public span[class*="bg-black"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public .btn-primary i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public .btn-primary svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public [class*="btn-primary"] i:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]),
body.site-public [class*="btn-primary"] svg:not([class*="text-"]):not([class*="text-emerald"]):not([class*="text-amber"]) {
    color: #ffffff !important;
}

/* 3. Textos com classe text-white sobre ou dentro de elementos com fundo escuro */
body.site-public [class*="bg-black"] .text-white,
body.site-public [class*="bg-zinc-900"] .text-white,
body.site-public [class*="bg-zinc-950"] .text-white,
body.site-public [class*="bg-zinc-800"] .text-white,
body.site-public [class*="bg-obsidian-950"] .text-white,
body.site-public [class*="bg-[#0b0b0f]"] .text-white,
body.site-public [class*="bg-[#0d0f15]"] .text-white,
body.site-public [class*="bg-[#07080b]"] .text-white,
body.site-public .btn-primary .text-white,
body.site-public [class*="btn-primary"] .text-white,
body.site-public .bg-black.text-white,
body.site-public [class*="bg-black"].text-white,
body.site-public .bg-zinc-900.text-white,
body.site-public [class*="bg-zinc-900"].text-white,
body.site-public .bg-zinc-950.text-white,
body.site-public [class*="bg-zinc-950"].text-white,
body.site-public .bg-zinc-800.text-white,
body.site-public [class*="bg-zinc-800"].text-white,
body.site-public .bg-obsidian-950.text-white,
body.site-public [class*="bg-obsidian-950"].text-white,
body.site-public [class*="bg-[#0b0b0f]"].text-white,
body.site-public [class*="bg-[#0d0f15]"].text-white,
body.site-public [class*="bg-[#07080b]"].text-white {
    color: #ffffff !important;
}

/* 4. Headings (h1, h2, h3, h4) dentro de containers escuros */
body.site-public [class*="bg-black"] h1,
body.site-public [class*="bg-black"] h2,
body.site-public [class*="bg-black"] h3,
body.site-public [class*="bg-black"] h4,
body.site-public [class*="bg-zinc-950"] h1,
body.site-public [class*="bg-zinc-950"] h2,
body.site-public [class*="bg-zinc-950"] h3,
body.site-public [class*="bg-zinc-950"] h4,
body.site-public [class*="bg-zinc-900"] h1,
body.site-public [class*="bg-zinc-900"] h2,
body.site-public [class*="bg-zinc-900"] h3,
body.site-public [class*="bg-zinc-900"] h4,
body.site-public [class*="bg-zinc-800"] h1,
body.site-public [class*="bg-zinc-800"] h2,
body.site-public [class*="bg-zinc-800"] h3,
body.site-public [class*="bg-zinc-800"] h4,
body.site-public [class*="bg-obsidian-950"] h1,
body.site-public [class*="bg-obsidian-950"] h2,
body.site-public [class*="bg-obsidian-950"] h3,
body.site-public [class*="bg-obsidian-950"] h4,
body.site-public [class*="bg-[#0d0f15]"] h1,
body.site-public [class*="bg-[#0d0f15]"] h2,
body.site-public [class*="bg-[#0d0f15]"] h3,
body.site-public [class*="bg-[#0d0f15]"] h4,
body.site-public [class*="bg-[#0b0b0f]"] h1,
body.site-public [class*="bg-[#0b0b0f]"] h2,
body.site-public [class*="bg-[#0b0b0f]"] h3,
body.site-public [class*="bg-[#0b0b0f]"] h4 {
    color: #ffffff !important;
}

/* 5. Strong e destaques dentro de containers escuros */
body.site-public [class*="bg-black"] strong,
body.site-public [class*="bg-zinc-950"] strong,
body.site-public [class*="bg-zinc-900"] strong,
body.site-public [class*="bg-zinc-800"] strong,
body.site-public [class*="bg-obsidian-950"] strong,
body.site-public [class*="bg-[#0d0f15]"] strong,
body.site-public [class*="bg-[#0b0b0f]"] strong {
    color: #ffffff !important;
}

/* 6. Overlay e vitrine em projeto.php */
.case-gallery [class*="bg-black"] {
    color: #ffffff !important;
}
.case-gallery [class*="bg-black"] .font-semibold,
.case-gallery [class*="bg-black"] span.font-semibold {
    color: #ffffff !important;
}
.case-gallery [class*="bg-black"] p {
    color: #d4d4d8 !important;
}

@media (prefers-reduced-motion: reduce) { 
    .project-card--v9, .project-card--animate-ready, .project-card__media img, .project-card__overlay span { 
        transition: none !important; 
        transform: none !important; 
        opacity: 1 !important; 
    } 
}

/* Conversão e navegação acessível */
.budget-radio { display:block; width:18px; height:18px; flex-shrink:0; margin-left:12px; accent-color:#4f46e5; }
.budget-radio + div { display:none !important; }
.budget-modal label:focus-within { outline:2px solid #4f46e5; outline-offset:3px; }
.site-public :focus-visible { outline:3px solid #4f46e5; outline-offset:4px; }
.form-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.contact-fields { border:0; padding:0; margin:0; min-width:0; }
.lead-success { display:flex; flex-direction:column; align-items:flex-start; gap:16px; padding-block:12px; }
.lead-success h3,.lead-success h4 { margin:0; font-size:24px; line-height:1.2; color:#171717; }
.lead-success p { margin:0; font-size:14px; line-height:1.7; color:#52525b; }
.lead-success a,.lead-success .btn-secondary { width:100%; justify-content:center; }
.success-reset { padding:8px 0; font:inherit; font-size:12px; color:#52525b; text-decoration:underline; }
.service-scope-note { padding:12px; margin-block:0 20px; background:#f4f4f5; border-left:2px solid #71717a; color:#3f3f46; font-size:12px; line-height:1.7; }
.service-pricing-note { max-width:850px; margin:-25px auto 32px; text-align:center; color:#52525b; font-size:12px; line-height:1.8; }
.service-deliverables { margin:-6px 0 24px; font-size:12px; color:#52525b; }
.service-deliverables summary { cursor:pointer; padding:8px 0; font-weight:600; color:#27272a; }
.service-deliverables ul { padding:8px 0 0 18px; list-style:disc; line-height:1.8; }
.scope-disclosure>summary { display:flex; align-items:center; justify-content:space-between; cursor:pointer; padding:24px; font-size:16px; font-weight:600; color:#27272a; list-style:none; }
.scope-disclosure>summary::-webkit-details-marker { display:none; }
.scope-disclosure>summary span { font-size:24px; }
.scope-disclosure[open]>summary { border-bottom:1px solid #e4e4e7; }
.scope-disclosure[open]>summary span { transform:rotate(45deg); }
.conversion-showcase .conversion-card { min-height:0; }
.conversion-showcase .conversion-card__description { margin-bottom:24px; }
.conversion-showcase .conversion-card__number { max-width:calc(100% - 65px); font-size:13px; line-height:1.5; letter-spacing:-.02em; font-weight:700; color:#646472; }
.conversion-showcase a.conversion-card__cta { text-decoration:none; }
@media(max-width:640px) { .contact-section input,.contact-section select,.contact-section textarea,.budget-modal input { font-size:16px !important; } }

.project-card--v9.hidden { display:none !important; }
@media(min-width:1024px) { .mobile-menu-button,.mobile-nav { display:none !important; } }
@media(max-width:767px) { .header-contact { display:none !important; } }
