* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: #FFFFFF;
  color: #10263F;
  font-family: 'Figtree', sans-serif;
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}
a { color: #1671D9; text-decoration: none; }
button { font-family: 'Figtree', sans-serif; }
img { max-width: 100%; }

/* reveal-on-scroll */
[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1);
}
[data-reveal].is-visible { opacity: 1; transform: none; }

#funcionalidades, #agenda, #depoimentos, #planos, #faq { scroll-margin-top: 84px; }

/* sticky header shadow */
.ff-header { transition: box-shadow .3s ease; }
.ff-header.is-scrolled { box-shadow: 0 8px 30px -14px rgba(13,42,74,0.18); }

/* hover states */
.ff-nav-link { transition: color .2s ease; }
.ff-nav-link:hover { color: #10263F; }

.ff-cta-header { transition: background .2s ease, transform .2s ease; }
.ff-cta-header:hover { background: #0D4EA3; transform: translateY(-1px); }

.ff-cta-primary { transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.ff-cta-primary:hover { background: #0D4EA3; transform: translateY(-2px); box-shadow: 0 14px 32px -10px rgba(22,113,217,0.6); }

.ff-cta-outline { transition: border-color .2s ease; }
.ff-cta-outline:hover { border-color: #1671D9; }

.ff-feature-card { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.ff-feature-card:hover { transform: translateY(-4px); box-shadow: 0 22px 48px -22px rgba(13,42,74,0.22); border-color: #CFE1F3; }

.ff-plan-cta { transition: transform .2s ease, background .2s ease; }
.ff-plan-cta:hover { transform: translateY(-2px); }

.ff-footer-link { transition: color .2s ease; }
.ff-footer-link:hover { color: #1671D9; }

.ff-faq-btn { transition: background .2s ease; }
.ff-faq-btn:hover { background: rgba(22,113,217,0.045); }
.ff-faq-btn:active { transform: scale(0.99); }

.ff-modal-close { transition: background .2s ease; }
.ff-modal-close:hover { background: #E1EAF4; }

.ff-whatsapp-btn { transition: background .2s ease, transform .2s ease; }
.ff-whatsapp-btn:hover { background: #4EA015; transform: translateY(-1px); }

.ff-final-cta { transition: transform .2s ease, background .2s ease; }
.ff-final-cta:hover { transform: translateY(-2px); background: #9BD64E; }

.ff-carousel-dot { transition: width .3s ease, background .3s ease; }

.ff-faq-item[data-open="true"] .ff-faq-icon { background: #1671D9; transform: rotate(180deg); }
.ff-faq-item[data-open="true"] .ff-faq-icon span { background: #ffffff; }
.ff-faq-icon { transition: background .3s ease, transform .35s cubic-bezier(.34,1.56,.64,1); }
.ff-faq-icon span { transition: transform .35s cubic-bezier(.34,1.56,.64,1), background .3s ease; }
.ff-faq-icon .ff-faq-icon-v { transform: translate(-50%,-50%); }
.ff-faq-item[data-open="true"] .ff-faq-icon-v { transform: translate(-50%,-50%) scaleY(0); }
.ff-faq-answer { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.ff-faq-item[data-open="true"] .ff-faq-answer { max-height: 260px; }

#ff-modal { display: none; }
#ff-modal:not([hidden]) { display: flex; }

.ff-nav-links { display: flex; align-items: center; gap: 30px; }

.ff-week-bar { width: 22px; }

/* mobile nav */
.ff-hamburger { display: none; }

@media (max-width: 900px) {
  .ff-nav-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid #E7EEF6;
    flex-direction: column;
    align-items: flex-start;
    gap: 0 !important;
    padding: 8px 32px 16px;
  }
  .ff-nav-links a { padding: 10px 0; width: 100%; }
  .ff-nav-links.is-open { display: flex; }
  .ff-hamburger {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid #E1EAF4;
    border-radius: 9px;
    background: #fff;
    cursor: pointer;
  }

  .ff-hero-h1 { font-size: 38px !important; }
  .ff-hero-sub { font-size: 17px !important; }

  .ff-dashboard-grid { grid-template-columns: 1fr !important; }
  .ff-dashboard-sidebar { display: none; }

  .ff-stats-grid { grid-template-columns: repeat(2,1fr) !important; }

  .ff-features-grid { grid-template-columns: 1fr !important; }

  .ff-deepdive-grid { grid-template-columns: 1fr !important; padding: 64px 32px !important; }
  .ff-deepdive-grid > [style*="order:1"] { order: 2 !important; }
  .ff-deepdive-grid > [style*="order:2"] { order: 1 !important; }

  .ff-pricing-grid { grid-template-columns: 1fr !important; }

  .ff-footer-grid { grid-template-columns: 1fr 1fr !important; }

  .ff-section-pad { padding: 64px 32px !important; }

  .ff-dashboard-content-grid { grid-template-columns: 1fr !important; }

  h2 { font-size: 30px !important; }
}

@media (max-width: 560px) {
  .ff-footer-grid { grid-template-columns: 1fr !important; }
  .ff-kpi-grid { grid-template-columns: repeat(2,1fr) !important; }
  .ff-agenda-table { font-size: 9px !important; }

  .ff-header-inner { padding: 10px 14px !important; gap: 8px !important; }
  .ff-cta-header {
    padding: 7px 11px !important;
    font-size: 11.5px !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    text-align: center !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .ff-logo-mark { height: 30px !important; }
  .ff-logo-wordmark { height: 17px !important; }
  .ff-hamburger { width: 34px !important; height: 34px !important; }

  .ff-section-pad, .ff-deepdive-grid { padding: 48px 20px !important; }

  .ff-week-bar { width: 15px !important; }

  /* testimonials: one card per view with native scroll-snap */
  .ff-carousel-wrap { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
  .ff-carousel-track { transform: none !important; }
  .ff-carousel-item { flex: 0 0 88% !important; scroll-snap-align: center; }
}
