@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

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

:root {
  --background: hsl(150, 20%, 97%);
  --foreground: hsl(200, 25%, 12%);
  --card: hsl(0, 0%, 100%);
  --card-foreground: hsl(200, 25%, 12%);
  --primary: hsl(160, 84%, 34%);
  --primary-foreground: hsl(0, 0%, 100%);
  --secondary: hsl(160, 40%, 94%);
  --secondary-foreground: hsl(160, 84%, 24%);
  --muted: hsl(150, 15%, 93%);
  --muted-foreground: hsl(200, 10%, 45%);
  --accent: hsl(36, 100%, 50%);
  --accent-foreground: hsl(0, 0%, 100%);
  --urgency: hsl(0, 84%, 55%);
  --urgency-foreground: hsl(0, 0%, 100%);
  --success: hsl(160, 84%, 34%);
  --success-foreground: hsl(0, 0%, 100%);
  --highlight: hsl(45, 100%, 55%);
  --highlight-foreground: hsl(30, 80%, 15%);
  --bonus: hsl(270, 60%, 55%);
  --bonus-foreground: hsl(0, 0%, 100%);
  --border: hsl(150, 15%, 88%);
  --radius: 0.75rem;
}

body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  background: var(--background);
  color: var(--foreground);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Space Grotesk', sans-serif;
}

a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }

/* ===== UTILITIES ===== */
.container { max-width: 32rem; margin: 0 auto; }
.text-center { text-align: center; }
.line-through { text-decoration: line-through; }

/* ===== CTA BUTTON ===== */
.cta-btn {
  display: block;
  width: 100%;
  border-radius: 0.75rem;
  padding: 1rem 2rem;
  text-align: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.025em;
  cursor: pointer;
  border: none;
  transition: all 0.2s;
  animation: pulse-slow 3s ease-in-out infinite;
}
.cta-btn:hover { filter: brightness(1.1); }
.cta-btn:active { transform: scale(0.97); }

.cta-btn--primary {
  background: var(--highlight);
  color: var(--highlight-foreground);
  box-shadow: 0 8px 32px -4px hsla(160, 84%, 34%, 0.4), 0 4px 12px -2px hsla(160, 84%, 34%, 0.2);
}
.cta-btn--combo {
  background: linear-gradient(135deg, hsl(0, 84%, 55%), hsl(0, 72%, 45%));
  color: var(--urgency-foreground);
  box-shadow: 0 8px 32px -4px hsla(0, 84%, 55%, 0.3);
}

@keyframes pulse-slow {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.03); }
}

/* ===== HERO ===== */
.hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, hsl(160, 84%, 34%), hsl(160, 84%, 28%));
  padding: 3rem 1rem;
  color: var(--primary-foreground);
  text-align: center;
}
.hero .blur-circle {
  position: absolute;
  border-radius: 50%;
  background: var(--primary-foreground);
  opacity: 0.1;
  filter: blur(48px);
}
.hero .blur-circle--1 { width: 16rem; height: 16rem; top: -5rem; right: -5rem; }
.hero .blur-circle--2 { width: 12rem; height: 12rem; bottom: -2.5rem; left: -2.5rem; }

.hero__badge {
  display: inline-block;
  background: var(--urgency);
  color: var(--urgency-foreground);
  padding: 0.375rem 1rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
  box-shadow: 0 8px 32px -4px hsla(0, 84%, 55%, 0.3);
}
.hero h1 {
  font-size: 1.875rem;
  font-weight: 900;
  line-height: 1.15;
  margin-bottom: 1rem;
}
.hero p.subtitle {
  font-size: 1rem;
  opacity: 0.9;
  line-height: 1.6;
  margin-bottom: 0.75rem;
}
.hero__image {
  max-width: 24rem;
  margin: 0 auto 1.5rem;
}
.hero__old-price {
  font-size: 0.875rem;
  opacity: 0.6;
}
.hero__price {
  font-size: 1.5rem;
  font-weight: 900;
  font-family: 'Space Grotesk', sans-serif;
}
.hero__price span { color: var(--highlight); }
.hero__guarantee {
  margin-top: 0.75rem;
  font-size: 0.75rem;
  opacity: 0.7;
}

/* ===== FOR YOU SECTION ===== */
.for-you {
  background: var(--card);
  padding: 3rem 1rem;
}
.for-you h2 {
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 2rem;
}
.for-you__item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: var(--secondary);
  border-radius: 0.5rem;
  padding: 1rem;
  margin-bottom: 0.75rem;
}
.for-you__item span { color: var(--success); font-size: 1.125rem; margin-top: 0.125rem; }
.for-you__item p { font-size: 0.875rem; font-weight: 500; }

/* ===== FEATURES ===== */
.features {
  background: var(--background);
  padding: 3rem 1rem;
}
.features h2, .features h3 {
  text-align: center;
  font-weight: 700;
}
.features h2 { font-size: 1.5rem; margin-bottom: 1.5rem; }
.features h3 { font-size: 1.25rem; margin-bottom: 1.5rem; }

.features__check {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 0.5rem;
}
.features__check-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: var(--success);
  color: var(--success-foreground);
  font-size: 0.75rem;
  flex-shrink: 0;
}
.features__categories {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
  margin-top: 2.5rem;
}
.features__cat {
  border: 1px solid var(--border);
  background: var(--card);
  border-radius: 0.5rem;
  padding: 0.75rem;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 500;
  box-shadow: 0 4px 24px -4px hsla(200, 25%, 12%, 0.08);
}
@media (min-width: 640px) {
  .features__categories { grid-template-columns: repeat(3, 1fr); }
  .features__cat { font-size: 0.875rem; }
}

/* ===== TESTIMONIALS ===== */
.testimonials {
  background: var(--secondary);
  padding: 3rem 1rem;
}
.testimonials h2 {
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 2rem;
}
.testimonial-card {
  background: var(--card);
  border-radius: 0.75rem;
  padding: 1.25rem;
  box-shadow: 0 4px 24px -4px hsla(200, 25%, 12%, 0.08);
  margin-bottom: 1rem;
}
.testimonial-card__stars { color: var(--highlight); margin-bottom: 0.5rem; letter-spacing: 2px; }
.testimonial-card__text { font-size: 0.875rem; font-style: italic; color: var(--card-foreground); }
.testimonial-card__author {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.75rem;
}
.testimonial-card__photo {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  object-fit: cover;
}
.testimonial-card__name { font-size: 0.875rem; font-weight: 600; }

/* ===== BONUS ===== */
.bonus {
  background: var(--background);
  padding: 3rem 1rem;
}
.bonus h2 {
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 2rem;
}
.bonus-card {
  position: relative;
  overflow: hidden;
  border: 2px solid hsla(270, 60%, 55%, 0.3);
  background: var(--card);
  border-radius: 0.75rem;
  padding: 1.25rem;
  box-shadow: 0 4px 24px -4px hsla(200, 25%, 12%, 0.08);
  margin-bottom: 1rem;
}
.bonus-card__circle {
  position: absolute;
  right: -1.5rem;
  top: -1.5rem;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: hsla(270, 60%, 55%, 0.1);
}
.bonus-card__badge {
  display: inline-block;
  background: var(--bonus);
  color: var(--bonus-foreground);
  padding: 0.125rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  margin-bottom: 0.25rem;
}
.bonus-card h3 {
  font-size: 1rem;
  font-weight: 700;
  margin-top: 0.5rem;
}
.bonus-card p { font-size: 0.875rem; color: var(--muted-foreground); margin-top: 0.25rem; }
.bonus-card__free { font-size: 0.75rem; font-weight: 700; color: var(--success); margin-top: 0.5rem; }

/* ===== PRICING ===== */
.pricing {
  background: var(--muted);
  padding: 3rem 1rem;
}
.pricing-basic {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 1rem;
  padding: 1.5rem;
  box-shadow: 0 4px 24px -4px hsla(200, 25%, 12%, 0.08);
  margin-bottom: 1.5rem;
}
.pricing-basic h3 {
  font-size: 1.125rem;
  font-weight: 700;
  text-align: center;
}
.pricing-basic .old-price {
  text-align: center;
  font-size: 0.875rem;
  color: var(--muted-foreground);
  margin-top: 0.75rem;
}
.pricing-basic .price {
  text-align: center;
  font-size: 1.875rem;
  font-weight: 900;
  color: var(--primary);
  font-family: 'Space Grotesk', sans-serif;
}
.pricing-items { margin-top: 1rem; }
.pricing-items div {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  margin-bottom: 0.5rem;
}

.pricing-combo {
  position: relative;
  overflow: hidden;
  background: var(--card);
  border: 2px solid var(--primary);
  border-radius: 1rem;
  padding: 1.5rem;
  box-shadow: 0 4px 24px -4px hsla(200, 25%, 12%, 0.08);
}
.pricing-combo__ribbon {
  position: absolute;
  top: 0; left: 0; right: 0;
  background: linear-gradient(135deg, hsl(160, 84%, 34%), hsl(160, 84%, 28%));
  color: var(--primary-foreground);
  text-align: center;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.5rem;
}
.pricing-combo h3 {
  font-size: 1.25rem;
  font-weight: 900;
  text-align: center;
  margin-top: 2rem;
}
.pricing-combo .old-price {
  text-align: center;
  font-size: 0.875rem;
  color: var(--muted-foreground);
  margin-top: 0.5rem;
}
.pricing-combo .price {
  text-align: center;
  font-size: 2.25rem;
  font-weight: 900;
  color: var(--primary);
  font-family: 'Space Grotesk', sans-serif;
  margin-top: 0.25rem;
}
.pricing-combo .price-sub {
  text-align: center;
  font-size: 0.75rem;
  color: var(--muted-foreground);
}

/* ===== SUMMARY ===== */
.summary {
  background: var(--card);
  padding: 3rem 1rem;
  text-align: center;
}
.summary h2 { font-size: 1.5rem; font-weight: 700; margin-bottom: 1rem; }
.summary p { font-size: 0.875rem; color: var(--muted-foreground); margin-bottom: 0.75rem; line-height: 1.6; }
.summary p.bold { font-weight: 600; color: var(--foreground); }
.summary__guarantee {
  border: 2px solid hsla(160, 84%, 34%, 0.3);
  background: var(--secondary);
  border-radius: 0.75rem;
  padding: 1.5rem;
  margin-bottom: 2rem;
}
.summary__guarantee h4 {
  font-size: 1.125rem;
  font-weight: 700;
}
.summary__guarantee p { font-size: 0.875rem; color: var(--muted-foreground); margin-top: 0.5rem; }
.summary__guarantee .green { font-size: 0.75rem; font-weight: 700; color: var(--success); margin-top: 0.5rem; }

/* ===== FAQ ===== */
.faq {
  background: var(--background);
  padding: 3rem 1rem;
}
.faq h2 {
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}
.faq-item {
  border: 1px solid var(--border);
  background: var(--card);
  border-radius: 0.5rem;
  margin-bottom: 0.5rem;
  box-shadow: 0 4px 24px -4px hsla(200, 25%, 12%, 0.08);
  overflow: hidden;
}
.faq-item__question {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--foreground);
  font-family: inherit;
  text-align: left;
}
.faq-item__question .arrow {
  transition: transform 0.3s;
  font-size: 0.75rem;
}
.faq-item.open .faq-item__question .arrow {
  transform: rotate(180deg);
}
.faq-item__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
  font-size: 0.875rem;
  color: var(--muted-foreground);
  padding: 0 1rem;
}
.faq-item.open .faq-item__answer {
  max-height: 10rem;
  padding: 0 1rem 1rem;
}

/* ===== UPSELL POPUP ===== */
.upsell-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 50;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.6);
  padding: 1rem;
}
.upsell-overlay.active { display: flex; }
.upsell-popup {
  position: relative;
  width: 100%;
  max-width: 24rem;
  background: var(--card);
  border: 2px solid var(--primary);
  border-radius: 1rem;
  padding: 1.5rem;
  box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25);
  animation: popup-in 0.3s ease;
}
@keyframes popup-in {
  from { transform: scale(0.85); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
.upsell-popup__close {
  position: absolute;
  right: 0.75rem;
  top: 0.75rem;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted-foreground);
  font-size: 1.25rem;
  padding: 0.25rem;
  border-radius: 50%;
  transition: background 0.2s;
}
.upsell-popup__close:hover { background: var(--muted); color: var(--foreground); }
.upsell-popup__badge {
  display: inline-block;
  background: hsla(160, 84%, 34%, 0.1);
  color: var(--primary);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
}
.upsell-popup h3 {
  font-size: 1.125rem;
  font-weight: 900;
  margin-top: 0.75rem;
  text-align: center;
}
.upsell-popup .price {
  text-align: center;
  font-size: 2.25rem;
  font-weight: 900;
  color: var(--primary);
  font-family: 'Space Grotesk', sans-serif;
  margin-top: 0.5rem;
}
.upsell-popup .old-price {
  text-align: center;
  font-size: 0.875rem;
  color: var(--muted-foreground);
}
.upsell-popup__decline {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 0.75rem;
  color: var(--muted-foreground);
  text-decoration: underline;
  margin-top: 0.75rem;
}
.upsell-popup__decline:hover { color: var(--foreground); }

/* ===== RESPONSIVE ===== */
@media (min-width: 640px) {
  .hero h1 { font-size: 2.25rem; }
  .hero p.subtitle { font-size: 1.125rem; }
  .hero__price { font-size: 1.875rem; }
  .for-you__item p { font-size: 1rem; }
  .features h2 { font-size: 1.875rem; }
  .for-you h2, .testimonials h2, .bonus h2, .summary h2, .faq h2 { font-size: 1.875rem; }
}
