/* ===================================================
   /css/style.css (Versão V3 - Profissional Completa)
   =================================================== */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');

:root {
  --color-dark: #0f1421;
  --color-dark-secondary: #171e2c;
  --color-elevated: #1d2536;
  --color-accent: #10B981;
  --color-accent-hover: #0D9468;
  --color-accent-light: rgba(16, 185, 129, 0.1);
  --color-text: #E5E7EB;
  --color-text-muted: #A6ADBB;
  --color-border: #2a3446;
  --shadow-1: 0 10px 30px rgba(0, 0, 0, .35);
  --shadow-2: 0 6px 18px rgba(16, 185, 129, .25);
  --shadow-3: 0 10px 25px rgba(16, 185, 129, .38);
  --radius: 14px;
  --bs-font-sans-serif: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

/* --- RESET / BASE --- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--bs-font-sans-serif);
  background: radial-gradient(1200px 700px at 10% -10%, rgba(79, 70, 229, .08), transparent), var(--color-dark);
  color: var(--color-text);
  line-height: 1.6;
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
::selection { background: var(--color-accent); color: #051019; }
a { color: inherit; text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--color-accent); }
h1, h2, h3, h4, h5, h6 { color: #fff; letter-spacing: -.02em; margin: 0 0 .8rem; }
h1 { font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 800; }
h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 700; }
h3 { font-size: clamp(1.2rem, 2.2vw, 1.6rem); font-weight: 700; }
p { color: var(--color-text-muted); margin: 0 0 1rem; }
img { max-width: 100%; height: auto; }
.text-accent { color: var(--color-accent) !important; }
.text-muted { color: var(--color-text-muted) !important; }

/* ACESSIBILIDADE: Foco visível apenas para teclado */
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: 4px;
}
.skip-link {
    position: absolute; top: -100px; left: 0; background: var(--color-accent);
    color: var(--color-dark); padding: 1rem; z-index: 9999; transition: top 0.3s; font-weight: 700;
}
.skip-link:focus { top: 0; }

/* ANIMAÇÃO DE ENTRADA */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
.animated-section { opacity: 0; }
.animated-section.in-view { animation: fadeInUp 0.8s ease-out forwards; }

/* NAVBAR */
.navbar { background: rgba(15, 20, 33, .7); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255, 255, 255, .04); padding: .8rem 0; }
.navbar-brand { color: #fff !important; font-weight: 800; font-size: 1.25rem; letter-spacing: .2px; }
.navbar-brand span:last-child { color: var(--color-accent); }
.nav-link { color: var(--color-text-muted) !important; font-weight: 500; position: relative; padding-top: .5rem; padding-bottom: .5rem; }
.nav-link:hover, .navbar .nav-link.active { color: #fff !important; }
.navbar .nav-link.active::after {
  content: ''; position: absolute; bottom: -2px; left: .5rem; right: .5rem; height: 2px;
  background-color: var(--color-accent); border-radius: 2px;
}
.nav-cta { margin-left: .75rem; padding: .55rem 1.2rem; border-radius: 999px; background: var(--color-accent); color: #0b1520; font-weight: 700; box-shadow: var(--shadow-2); transition: all .2s ease; }
.nav-cta:hover { background: var(--color-accent-hover); color: #fff; transform: translateY(-2px); }

/* SECTIONS */
.section { padding: clamp(3rem, 6vw, 5rem) 0; border-top: 1px solid var(--color-border); }
.hero { padding: clamp(4rem, 8vw, 7rem) 0; border-top: none; }
.section-title { text-align: center; margin: 0 auto 3rem; max-width: 880px; }
.section-title span { color: var(--color-accent); font-weight: 700; }
section[id] { scroll-margin-top: 88px; }

/* HERO */
.hero-content h1 { background: linear-gradient(45deg, #fff, #d7e2ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero-content .lead { font-size: clamp(1rem, 1.5vw, 1.25rem); max-width: 640px; margin: 1rem 0 2rem; }
.hero-cta { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; }
.btn { border-radius: 12px; padding: .9rem 1.4rem; font-weight: 700; border: none; transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease; }
.btn-accent { background: var(--color-accent); color: #09131d; box-shadow: var(--shadow-2); }
.btn-accent:hover { transform: translateY(-2px); background: var(--color-accent-hover); color: #fff; box-shadow: var(--shadow-3); }
.btn-outline-light { background: transparent; border: 1px solid rgba(255, 255, 255, .24) !important; color: #fff; }
.btn-outline-light:hover { background: #fff; color: #0b1621; }
.hero-mockup { background: #F9FAFB; border-radius: 16px; box-shadow: var(--shadow-1); position: relative; font-family: 'Roboto', sans-serif; transform: perspective(1200px) rotateY(-10deg); transition: transform .5s ease; overflow: hidden; }
.hero-mockup:hover { transform: perspective(1200px) rotateY(0deg) scale(1.02); }
.mockup-system-header { display:flex; align-items:center; justify-content:space-between; padding:.8rem 1rem; background: linear-gradient(135deg, #1F2937, #4F46E5); color:#fff; font-weight:600; font-size:.9rem; }
.mockup-system-nav { display:flex; justify-content:center; background:#fff; padding:.5rem; border-bottom:1px solid #E5E7EB; gap:.75rem; }
.mockup-system-nav span { font-size:.85rem; color:#2F2F2F; font-weight:600; padding:.3rem .8rem; border-radius: 999px; }
.mockup-system-nav span.active { background:#4F46E5; color:#fff; }
.mockup-system-body { padding: 1rem; }
.mockup-search-bar { display:flex; margin-bottom:1rem; }
.mockup-search-bar input { flex:1; border:1px solid #E5E7EB; padding:.5rem; border-radius: 8px 0 0 8px; font-size:.9rem; outline:none; }
.mockup-search-bar button { background:#1F2937; color:#fff; border:none; padding: 0 .9rem; border-radius:0 8px 8px 0; font-size:.9rem; }
.mockup-table { width:100%; border-collapse: collapse; font-size:.85rem; }
.mockup-table th, .mockup-table td { padding:.65rem; text-align:left; border-bottom:1px solid #E5E7EB; color:#2F2F2F; }
.mockup-table th { background:#F3F4F6; font-weight:700; }
.mockup-table tbody tr:nth-child(even) { background:#F9FAFB; }
.mockup-status { font-size:.75rem; font-weight:700; padding:.25rem .7rem; border-radius:999px; color:#fff; }
.mockup-status.status-available { background: var(--color-accent); }
.mockup-status.status-sold { background: #EF4444; }
.mockup-action-btn { background:#4F46E5; color:#fff; border:none; border-radius:8px; padding:.35rem .6rem; }

/* PROVA SOCIAL */
.social-proof { border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); padding: 2.5rem 0; }
.social-proof-title { font-weight: 600; color: var(--color-text-muted); font-size: .9rem; text-align: center; letter-spacing: 0.5px; text-transform: uppercase; margin-bottom: 2rem; }
.logos-container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 3rem; }
.logos-container img { max-height: 35px; width: auto; opacity: 0.6; filter: grayscale(1) brightness(1.5); transition: opacity .2s ease, filter .2s ease; }
.logos-container img:hover { opacity: 0.9; filter: none; }

/* CARDS & CONTAINERS */
.card-like, .feature-card, .testimonial-card, .pricing-card, .contact-form-wrapper { background: var(--color-elevated); border: 1px solid var(--color-border); border-radius: var(--radius); padding: 2rem; transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease; height: 100%; }
.feature-card:hover, .testimonial-card:hover, .pricing-card:hover { transform: translateY(-5px); border-color: var(--color-accent); box-shadow: var(--shadow-1); }
.feature-card-icon { font-size: 2.4rem; color: var(--color-accent); margin-bottom: 1rem; display: inline-block; }
.testimonial-card { text-align: center; display: flex; flex-direction: column; }
.testimonial-card .quote-symbol { font-size: 3rem; color: var(--color-accent); line-height: 1; }
.testimonial-author { margin-top: auto; }
.testimonial-author img { width: 56px; height: 56px; border-radius: 50%; border: 2px solid var(--color-accent); margin: 1rem auto; }
.stars { color: #fbbf24; font-size: .95rem; letter-spacing: 3px; }
.quote-text { font-size: .95rem; color: #dfe6f2; line-height: 1.75; flex: 1; font-style: italic; margin: .75rem 0 1.25rem; }
.testimonial-author { margin-top: auto; padding-top: 1.1rem; border-top: 1px solid var(--color-border); }
.testimonial-author strong { display: block; color: #fff; font-weight: 700; margin-bottom: .2rem; }
.testimonial-author span { font-size: .8rem; color: var(--color-text-muted); }
.author-avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--color-accent-light); border: 2px solid var(--color-accent); color: var(--color-accent); font-weight: 800; font-size: .95rem; display: flex; align-items: center; justify-content: center; margin: 0 auto .9rem; letter-spacing: .5px; }
.pricing-card.recommended { border-color: var(--color-accent); box-shadow: var(--shadow-2); position: relative; transform: scale(1.03); }
.pricing-card.recommended:hover { transform: scale(1.03) translateY(-5px); }
.pricing-card ul { list-style: none; padding: 0; margin: 1.5rem 0 0; }
.pricing-card li { margin-bottom: .8rem; color: #dfe6f2; display: flex; align-items: flex-start; text-align: left; }
.pricing-card li i { color: var(--color-accent); margin-right: .75rem; margin-top: 4px; }
.oferta-destaque { background: linear-gradient(0deg, var(--color-accent-light), var(--color-accent-light)), var(--color-elevated); border: 1px dashed var(--color-accent); border-radius: var(--radius); padding: 1rem 1.25rem; }
.price-simple .price-old del { color: #ef4444; font-weight:700; }
.price-promo-valor, .price-simple div { display:flex; align-items: baseline; gap:.35rem; }
.currency { font-size: 1.15rem; font-weight: 700; color:#fff; }
.price-promo { font-size: 2.6rem; font-weight: 800; color:#fff; line-height: 1; }
.price-cents { font-size: 1.35rem; font-weight: 700; }
.period { font-size:.9rem; color: var(--color-text-muted); }

/* WHATSAPP FAB */
#whatsapp-button { position: fixed; bottom: 24px; right: 24px; z-index: 1000; width: 60px; height: 60px; background: #25d366; color: #fff; border-radius: 50%; display: grid; place-items: center; font-size: 1.9rem; box-shadow: 0 4px 16px rgba(37, 211, 102, .35); transition: transform .25s ease, box-shadow .25s ease; text-decoration: none; position: fixed; }
#whatsapp-button:hover { transform: scale(1.1); box-shadow: 0 6px 28px rgba(37, 211, 102, .55); color: #fff; }
#whatsapp-button::after { content: ''; position: absolute; width: 100%; height: 100%; border-radius: 50%; background: #25d366; opacity: 0; transform: scale(1); pointer-events: none; }
#whatsapp-button:hover::after { animation: wpp-pulse .65s ease-out forwards; }
@keyframes wpp-pulse { 0% { transform: scale(1); opacity: .55; } 100% { transform: scale(1.75); opacity: 0; } }

/* FORMS / INPUTS */
.form-label { font-weight: 500; margin-bottom: .5rem; }
.form-control, .form-select { background: #0c1320; border-color: var(--color-border); color: #dfe6f2; padding: .7rem 1rem; height: auto; border-radius: 8px; }
.form-control:focus, .form-select:focus { background: #0c1320; border-color: var(--color-accent); color: #fff; box-shadow: 0 0 0 .25rem var(--color-accent-light); }
.form-control::placeholder { color: #8a94a6; }
.input-group-text { background: #1d2536; border-color: var(--color-border); color: #cbd5e1; }
.form-control.is-valid, .form-select.is-valid { border-color: var(--color-accent) !important; background-image: none; }
.form-control.is-invalid, .form-select.is-invalid { border-color: #EF4444 !important; background-image: none; }
.card-input-wrapper { position: relative; }
.card-input-wrapper .form-control { padding-right: 52px; }
.card-brand-icon { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 32px; height: auto; opacity: 0; transition: opacity .25s ease; }
.card-brand-icon.visible { opacity: 1; }
.secure-payment-badge { text-align:center; margin-top: 1.1rem; font-size:.85rem; color: var(--color-text-muted); }
.secure-payment-badge i { color: var(--color-accent); margin-right:.5rem; }

/* STEPPER */
.stepper { display: flex; justify-content: center; gap: .5rem; margin: 1.5rem 0 2rem; flex-wrap: wrap; }
.stepper .step { display: flex; align-items: center; gap: .6rem; font-weight: 700; color: #93a0b4; position: relative; padding: 0 .8rem; }
.step .dot { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 2px solid #3a4559; background: var(--color-dark-secondary); font-size: 0.9rem; }
.step:not(:last-child)::after { content: ''; width: 40px; height: 2px; background: #3a4559; position: absolute; left: 100%; top: 50%; transform: translate(14px, -50%); }
.step.active { color: #fff; }
.step.active .dot { border-color: var(--color-accent); background: var(--color-accent-light); }
.step.completed .dot { border-color: var(--color-accent); background: var(--color-accent); color: var(--color-dark); }
.step.completed:not(:last-child)::after { background-color: var(--color-accent); }

/* ACCORDION FAQ */
.accordion-dark .accordion-item { background: transparent; border: 1px solid var(--color-border); border-radius: 12px !important; overflow: hidden; }
.accordion-dark .accordion-item + .accordion-item { margin-top: .8rem; }
.accordion-dark .accordion-button { background: var(--color-elevated); color: #fff; box-shadow: none; font-weight: 600; }
.accordion-dark .accordion-button:not(.collapsed) { color: #fff; background: linear-gradient(0deg, var(--color-accent-light), var(--color-accent-light)), var(--color-elevated); }
.accordion-dark .accordion-button:focus { box-shadow: 0 0 0 .15rem var(--color-accent-light); }
.accordion-dark .accordion-body { color: #dbe5f5; background-color: var(--color-elevated); }
.accordion-dark .accordion-button::after { filter: brightness(0) invert(1); }

/* FOOTER */
footer { padding: 4rem 0 2rem; border-top: 1px solid var(--color-border); background-color: #0c101a; }
footer .footer-brand { color: #fff; font-weight: 800; font-size: 1.25rem; letter-spacing: .2px; margin-bottom: 1rem; display: inline-block; }
footer .footer-brand span:last-child { color: var(--color-accent); }
footer p { color: #9fb0c7; margin-bottom: .5rem; }
footer a { color: #9fb0c7; transition: color .2s ease; }
footer a:hover { color: var(--color-accent); }
.footer-links h5 { color: #fff; font-size: 1rem; font-weight: 600; margin-bottom: 1rem; }
.footer-links ul { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: .6rem; }
.social-icons a { font-size: 1.25rem; margin: 0 .75rem 0 0; display: inline-block; }
.footer-bottom { border-top: 1px solid var(--color-border); padding-top: 1.5rem; margin-top: 2rem; }

/* PÁGINA DE SUCESSO */
.success-icon { font-size: 6rem; color: var(--color-accent); animation: fadeInUp 0.5s ease-out; }
.next-steps { background-color: var(--color-elevated); border: 1px solid var(--color-border); padding: 2rem; border-radius: var(--radius); margin-top: 2.5rem; text-align: left; }
.next-steps h4 { color: #fff; border-bottom: 1px solid var(--color-border); padding-bottom: .75rem; margin-bottom: 1.25rem; }
.next-steps p { color: var(--color-text); margin-bottom: .75rem; }
.next-steps p i { color: var(--color-accent); width: 20px; text-align: center; margin-right: .75rem; }

/* RESPONSIVO */
@media (max-width: 991.98px) {
  .hero-content { text-align: center; }
  .hero-cta { justify-content: center; }
  .hero-mockup { transform: none; margin: 2.5rem auto 0; max-width: 560px; }
  .hero-mockup:hover { transform: none; }
  .navbar-nav { padding: .6rem 0; }
  .navbar .nav-link.active::after { display: none; }
  .footer-links, .social-icons { margin-top: 2rem; }
  .pricing-card.recommended { transform: none; }
}
@media (max-width: 767.98px) {
  .section { padding: 2.6rem 0; }
  .pricing-card, .feature-card, .testimonial-card, .contact-form-wrapper { padding: 1.5rem; }
  .oferta-destaque, .hero-cta { text-align: center; }
  .footer-links { text-align: center; }
  .social-icons { text-align: center; }
  .footer-bottom { text-align: center; }
  .footer-bottom .text-lg-end { text-align: center !important; margin-top: 1rem; }
}
section[id] {
  scroll-margin-top: 140px !important;
}
