* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --primary-color: #004fff;
  --light-color: #f4f4f6;
  --dark-color: #111;
}

body {
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
  line-height: 1.5;
  background: #fff;
  overflow-x: hidden;
}

a {
  text-decoration: none;
  color: #333;
}

ul {
  list-style: none;
}

img {
  max-width: 100%;
}

/* Navbar */
.navbar {
  background: #fff;
  padding: 20px;
}

.navbar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.navbar .main-menu ul {
  display: flex;
}

.navbar ul li a {
  padding: 10px 20px;
  display: block;
  font-weight: 600;
  transition: 0.5s;
}

.navbar ul li a:hover {
  color: var(--primary-color);
}

.navbar ul li a i {
  margin-right: 10px;
}

.navbar ul li:last-child a {
  margin-left: 10px;
}

/* Hero */
.hero {
  margin-bottom: 50px;
}

.hero .container {
  background: url('../images/hero-bg.png') no-repeat;
  background-size: contain;
  background-position: center bottom;
  height: 550px;
}

.hero .hero-content {
  width: 70%;
}

.hero .hero-text {
  width: 70%;
  margin-bottom: 20px;
}

/* Video */
.video {
  padding: 10px 0 40px;
}

.video .video-content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.video .video-preview {
  margin-bottom: 20px;
}

/* Testimonials */
.testimonials {
  padding: 40px 0;
}

.testimonials .testimonials-heading {
  /* Mudei para max-width para não quebrar em telas menores que 700px */
  max-width: 700px; 
  width: 100%;
  margin-bottom: 40px;
}

.testimonials .testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  /* Garante que todas as células do grid tenham a mesma altura */
  align-items: stretch; 
}

/* Testimonial meta styles removed (avatars) - reverted to original layout */

/* --- NOVO BLOCO NECESSÁRIO --- */
.testimonials .card {
  display: flex;       /* Transforma o card em um container flexível */
  flex-direction: column; /* Organiza o conteúdo em coluna (um abaixo do outro) */
  height: 100%;        /* Força o card a ocupar toda a altura disponível na célula do grid */
  
  /* Estilos visuais opcionais (adicione conforme seu design) */
  background-color: #f9f9f9;
  padding: 20px;
  border-radius: 8px;
 
  margin-bottom: 30px;
}

/* --- SEU BLOCO AJUSTADO --- */
.testimonials .card p:nth-child(2) {
  margin-top: auto;    /* O SEGREDO: Empurra este elemento para o final do card */
  font-weight: bold;
}

/* Pricing */
.pricing .pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 50px;
}

.pricing .pricing-card-subheading {
  margin-bottom: 30px;
}

.pricing .pricing-card-price {
  margin-bottom: 30px;
  padding: 20px 0;
  border-bottom: 1px solid #ccc;
}

.pricing ul {
  margin: 30px 0;
}

.pricing ul li {
  margin-bottom: 20px;
}

.pricing ul li i {
  margin-right: 10px;
}

.pricing .pricing-footer {
  margin: 30px 0;
  font-size: small;
}

/* FAQ */
.faq {
  padding: 40px 0;
}

.faq .faq-group {
  border-bottom: 1px solid #ccc;
  padding-bottom: 20px;
}

.faq .faq-group .faq-group-header {
  padding: 20px 0;
  margin-bottom: 15px;
  position: relative;
}

.faq .faq-group .faq-group-header h4 {
  font-weight: 600;
  width: 95%;
}

.faq .faq-group .faq-group-header i {
  position: absolute;
  right: 0;
  top: 35px;
  font-size: 1.3rem;
  cursor: pointer;
}

.faq .faq-group .faq-group-body {
  display: none;
}

.faq .faq-group .faq-group-body.open {
  display: block;
}

.faq ul.faq-menu {
  max-width: 400px;
  margin: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #ddd;
  padding: 10px 20px;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
}

.faq ul.faq-menu li {
  padding: 10px 20px;
  border-radius: 5px;
  text-align: center;
}

.faq ul.faq-menu li.active {
  background: var(--primary-color);
  color: #fff;
}

/* Footer */
.footer {
  padding: 40px 0;
}

.footer-bottom {
  text-align: center;
  padding-top: 14px;
  color: #ccc;
  font-size: 0.95rem;
}

.footer h4 {
  margin-bottom: 10px;
}

.footer ul li {
  line-height: 2.5;
}

.footer a {
  color: #ccc;
}

.footer i {
  font-size: 1.5rem;
  margin-right: 10px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 30px;
  justify-content: center;
  align-items: center;
}

/* Header and footer logo custom sizes */
.header-logo {
  width: 160px; /* header logo default */
  height: auto;
  display: block;
}

.footer-logo {
  width: 260px; /* footer logo default */
  height: auto;
  display: block;
}

@media (max-width: 670px) {
  .header-logo {
    width: 120px;
  }
  .footer-logo {
    width: 160px;
  }
}

/* Pricing: mobile adjustments — stack cards and put price below title */
@media (max-width: 670px) {
  .pricing .pricing-grid {
    grid-template-columns: 1fr; /* stack cards vertically on mobile */
  }

  .pricing .pricing-card-price {
    display: flex;
    flex-direction: column; /* title on top, price below */
    align-items: center;
    text-align: center;
  }

  .pricing .pricing-card-price .text-xl {
    margin: 0 0 6px 0; /* smaller gap under the title */
    font-size: 1.1rem;
    line-height: 1.2;
  }

  .pricing .pricing-card-price .text-xxl {
    margin: 0;
    font-size: 2rem; /* keep price prominent but responsive */
    line-height: 1.1;
  }
}

@media (max-width: 420px) {
  .pricing .pricing-card-price .text-xl {
    font-size: 1rem;
  }
  .pricing .pricing-card-price .text-xxl {
    font-size: 1.8rem;
  }
}

.footer .card {
  margin: 20px 30px 30px 0;
  
}

.footer input[type='email'] {
  width: 100%;
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 5px;
  margin: 20px 0;
}

/* Utility Classes */
.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 15px;
}

.container-sm {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 15px;
}

/* Card */
.card {
  background: #fff;
  color: #000;
  border-radius: 10px;
  padding: 20px;
}

/* Buttons */
.btn {
  display: inline-block;
  padding: 13px 20px;
  background: var(--light-color);
  color: #333;
  font-weight: 600;
  text-decoration: none;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  text-align: center;
  transition: 0.5s;
}

.btn:hover {
  opacity: 0.8;
}

.btn-primary {
  background: var(--primary-color);
  color: #fff;
}

.btn-dark {
  background: var(--dark-color);
  color: #fff;
}

.btn-block {
  display: block;
  width: 100%;
}

/* Text Classes */
.text-xxl {
  font-size: 3rem;
  line-height: 1.2;
  font-weight: 600;
  margin: 40px 0 20px;
}

.text-xl {
  font-size: 2.1rem;
  line-height: 1.4;
  font-weight: normal;
  margin: 40px 0 20px;
}

.text-lg {
  font-size: 1.8rem;
  line-height: 1.4;
  font-weight: normal;
  margin: 30px 0 20px;
}

.text-md {
  font-size: 1.2rem;
  line-height: 1.4;
  font-weight: normal;
  margin: 20px 0 10px;
}

.text-sm {
  font-size: 0.9rem;
  line-height: 1.4;
  font-weight: normal;
  margin: 10px 0 5px;
}

.text-center {
  text-align: center;
}

/* Background */
.bg-primary {
  background: var(--primary-color);
  color: #fff;
}

.bg-light {
  background: var(--light-color);
  color: #333;
}

.bg-dark {
  background: var(--dark-color);
  color: #fff;
}

.bg-black {
  background: #000;
  color: #fff;
}

/* Mobile: aumentar legibilidade dos textos e botões */
@media (max-width: 670px) {
  /* leve aumento da base para melhorar legibilidade em celulares */
  body {
    font-size: 18px;
  }

  /* Escala das classes de texto para mobile */
  .text-xxl {
    font-size: 2.6rem; /* maior e ainda proporcional */
    margin: 30px 0 16px;
  }

  .text-xl {
    font-size: 2.0rem;
    margin: 28px 0 14px;
  }

  .text-lg {
    font-size: 1.6rem;
    margin: 20px 0 12px;
  }

  .text-md {
    font-size: 1.15rem;
    margin: 16px 0 10px;
  }

  .text-sm {
    font-size: 1rem;
    margin: 12px 0 6px;
  }

  /* Botões um pouco maiores e com padding ajustado */
  .btn {
    padding: 14px 22px;
    font-size: 1rem;
  }
}

@media (max-width: 420px) {
  /* ajuste fino para telas muito pequenas */
  body {
    font-size: 17px;
  }

  .text-xxl {
    font-size: 2.2rem;
  }

  .text-xl {
    font-size: 1.9rem;
  }

  .text-lg {
    font-size: 1.5rem;
  }

  .text-md {
    font-size: 1.05rem;
  }

  .btn {
    padding: 15px 20px;
    font-size: 1rem;
  }
}

/* Hamburger Button */
.hamburger-button {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 1000;
}

.hamburger-button .hamburger-line {
  width: 30px;
  height: 3px;
  background: #333;
  margin: 6px 0;
}

/* Mobile Menu */
.mobile-menu {
  position: fixed;
  top: 0;
  right: -300px;
  width: 250px;
  height: 100%;
  z-index: 100;
  background: #fff;
  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
  transition: right 0.3s ease-in-out;
}

.mobile-menu.active {
  right: 0;
}

.mobile-menu ul {
  margin-top: 100px;
  padding-right: 10px;
}

.mobile-menu ul li {
  margin: 10px 0;
}

.mobile-menu ul li a {
  font-size: 20px;
  transition: 0.3s;
}

/* Media Queries */
@media (max-width: 960px) {
  .text-xxl {
    font-size: 2.5rem;
  }
}

@media (max-width: 670px) {
  .navbar .main-menu {
    display: none;
  }

  .navbar .hamburger-button {
    display: block;
  }

  .hero .container {
    background: url('../images/hero-bg-mobile.png') no-repeat;
    background-size: 350px 400px;
    background-position: bottom;
    height: 770px;
  }

  .hero .hero-content,
  .hero .hero-text {
    width: 100%;
    text-align: center;
  }

  .hero .hero-buttons .btn {
    margin-bottom: 10px;
    display: block;
    width: 100%;
  }

  .testimonials .testimonials-heading {
    max-width: 100%;
    text-align: center;
  }

  .testimonials .testimonials-grid,
  .pricing .pricing-grid,
  .footer .footer-grid {
    grid-template-columns: 1fr;
  }

  .footer .card {
    margin-right: 0;
  }

  .footer .footer-grid > div {
    text-align: center;
  }

  /* Text */
  .text-xl {
    font-size: 1.9rem;
  }

  .text-lg {
    font-size: 1.5rem;
  }

  .text-md {
    font-size: 1.1rem;
  }
}

@media (max-width: 500px) {
  .text-xxl {
    font-size: 2rem;
  }
}

/* Featured pricing card styling */
.card.featured {
  position: relative; /* required for ribbon positioning */
  overflow: visible;
  border: 4px solid var(--primary-color);
  box-shadow: 0 8px 24px rgba(0, 79, 255, 0.08);
}

.card.featured .ribbon {
  position: absolute;
  top: 0;
  right: 0; /* bring ribbon closer so it doesn't overflow */
  background: var(--primary-color);
  color: #fff;
  padding: 6px 28px; /* reduced padding to avoid overrun */
  transform-origin: top right;
  display: inline-block;
  white-space: nowrap;
  font-weight: 700;
  font-size: 0.85rem;
  box-shadow: 0 6px 12px rgba(0,0,0,0.12);
  z-index: 3;
  border-bottom-left-radius: 5px;
  border-top-right-radius: 5px;
  max-width: 140%;
}

/* Make ribbon and border adapt to smaller screens */
@media (max-width: 670px) {
  .card.featured {
    border-width: 2px;
  }
  .card.featured .ribbon {
    right: -8px;
    padding: 6px 22px;
    font-size: 0.78rem;
  }
}

@media (max-width: 420px) {
  .card.featured .ribbon {
    right: 0px;
    padding: 5px 18px;
    font-size: 0.72rem;
  }
}

/* Floating CTA */
.floating-cta {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(90deg, #0056ff 0%, #1f8bff 100%);
  color: #fff;
  padding: 16px 22px; /* increased size */
  border-radius: 999px;
  box-shadow: 0 10px 28px rgba(31, 139, 255, 0.28);
  cursor: pointer;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

/* Desktop: deixar o card do meio levemente maior que os lados */
@media (min-width: 671px) {
  .pricing .pricing-grid {
    grid-template-columns: 1fr 1.15fr 1fr; /* meio um pouco mais largo */
    align-items: start;
  }

  .pricing .pricing-grid .card {
    transition: transform 220ms ease, box-shadow 220ms ease;
  }

  .pricing .pricing-grid .card.featured {
    transform: scale(1.03);
    z-index: 2; /* elevar visualmente acima dos vizinhos */
    box-shadow: 0 12px 30px rgba(0,79,255,0.08);
  }

  .pricing .pricing-grid .card.featured:hover {
    transform: scale(1.04);
  }
}
.floating-cta:hover { transform: translateY(-6px); box-shadow: 0 16px 34px rgba(31,139,255,0.36); }
.floating-cta-link { color: #fff; text-decoration: none; display:flex; flex-direction:column; padding: 0 12px; align-self: stretch; justify-content: center; gap:4px; }
.floating-cta .cta-title { font-weight:700; font-size:18px; line-height:1; }
.floating-cta .cta-bonus { font-size:13px; opacity:0.98; }
.floating-cta-close {
  background: rgba(255,255,255,0.12);
  color: #fff;
  border: none;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
}

@media (max-width: 670px) {
  .floating-cta { right: 16px; bottom: 16px; padding: 14px 18px; gap:14px; max-width: 300px; }
  .floating-cta .cta-title { font-size:16px; }
  .floating-cta .cta-bonus { font-size:12px; }
  .floating-cta-close { width:32px; height:32px; font-size:16px; }
}

@media (max-width: 420px) {
  .floating-cta { right: 12px; bottom: 12px; padding: 12px 16px; gap:12px; max-width:320px; }
  .floating-cta { padding-left: 12px; padding-right: 12px; }
  .floating-cta-link { padding: 0 12px; }
  .floating-cta .cta-title { font-size:15px; }
  /* Mostrar bônus em telas pequenas com fonte menor e quebra de linha se necessário */
  .floating-cta .cta-bonus { display:block; font-size:13px; opacity:0.98; margin-top:6px; }
  /* Forçar coluna no mobile para que o bônus fique abaixo do título */
  .floating-cta-link { flex-direction: column; align-items: flex-start; gap:4px; justify-content: center; }
  .floating-cta .cta-title { white-space: normal; }
  .floating-cta .cta-bonus { white-space: normal; }
  .floating-cta-close { width:32px; height:32px; font-size:16px; }
}
