/* ═══════════════════════════════════════════════════════════════
   VENCER A PORNOGRAFIA — Design System
   Livre pela Palavra — Transformado pelo Espírito
   ═══════════════════════════════════════════════════════════════ */

/* ─── Paleta de Cores ─── */
:root {
  --fp-navy: #1a2744;
  --fp-blue: #2d5a87;
  --fp-sky: #4a90d9;
  --fp-gold: #d4a843;
  --fp-gold-light: #f0dca0;
  --fp-warm: #f5f0e8;
  --fp-cream: #fefcf8;
  --fp-sage: #4a7c59;
  --fp-sage-light: #e8f5e9;
  --fp-graphite: #1f2420;
  --fp-rose: #c9544a;
  --fp-rose-light: #fde8e6;

  --fp-navy-dark: #0f1a2e;
  --fp-blue-dark: #1e3d5c;
  --fp-gold-dark: #b08930;
  --fp-warm-dark: #e8dfd0;
  --fp-cream-dark: #f0eadf;

  --font-brand: 'IBM Plex Sans', system-ui, sans-serif;
  --font-body: 'Lora', Georgia, serif;
  --font-verse: 'Libre Baskerville', Georgia, serif;

  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;
  --space-3xl: 64px;

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-xl: 32px;
  --radius-full: 9999px;

  --shadow-sm: 0 2px 8px rgba(26,39,68,0.06);
  --shadow-md: 0 4px 16px rgba(26,39,68,0.08);
  --shadow-lg: 0 8px 32px rgba(26,39,68,0.1);
  --shadow-xl: 0 16px 48px rgba(26,39,68,0.12);
}

/* ─── Dark Mode ─── */
[data-theme="dark"] {
  --fp-navy: #a8c4e0;
  --fp-blue: #7bafd4;
  --fp-sky: #5ba3e6;
  --fp-gold: #e8c46a;
  --fp-gold-light: #3d3520;
  --fp-warm: #1a2228;
  --fp-cream: #0f161c;
  --fp-sage: #8bc49a;
  --fp-sage-light: #1a2e1f;
  --fp-graphite: #f4efe6;
  --fp-rose: #e88a82;
  --fp-rose-light: #2e1a18;

  --fp-navy-dark: #0a1018;
  --fp-blue-dark: #142a40;
  --fp-gold-dark: #c9a040;
  --fp-warm-dark: #1e2830;
  --fp-cream-dark: #141c24;
}

/* ─── Hero ─── */
.fp-hero {
  background: linear-gradient(135deg, var(--fp-navy) 0%, var(--fp-blue) 100%);
  color: #fff;
  padding: var(--space-3xl) 0;
  position: relative;
  overflow: hidden;
}

.fp-hero::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -20%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(212,168,67,0.15) 0%, transparent 70%);
  pointer-events: none;
}

.fp-hero-card {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: var(--space-xl);
  align-items: center;
}

.fp-hero-kicker {
  display: inline-block;
  font-family: var(--font-brand);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fp-gold);
  margin-bottom: var(--space-sm);
}

.fp-hero h1 {
  font-family: var(--font-brand);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 var(--space-md);
  color: #fff;
}

.fp-hero p {
  font-size: 1rem;
  line-height: 1.6;
  color: rgba(255,255,255,0.85);
  margin: 0 0 var(--space-lg);
  max-width: 540px;
}

.fp-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.fp-hero-actions a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  border-radius: var(--radius-full);
  font-family: var(--font-brand);
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
  transition: all 0.2s;
}

.fp-hero-actions a.primary {
  background: var(--fp-gold);
  color: var(--fp-navy);
}

.fp-hero-actions a.primary:hover {
  background: var(--fp-gold-light);
  transform: translateY(-1px);
}

.fp-hero-actions a.secondary {
  background: rgba(255,255,255,0.12);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.25);
}

.fp-hero-actions a.secondary:hover {
  background: rgba(255,255,255,0.2);
}

/* ─── Hero Panel ─── */
.fp-hero-panel {
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  text-align: center;
}

.fp-hero-stat strong {
  display: block;
  font-family: var(--font-brand);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--fp-gold);
  line-height: 1;
}

.fp-hero-stat span {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.7);
}

/* ─── Stats Bar ─── */
.fp-stats {
  display: flex;
  justify-content: center;
  gap: var(--space-xl);
  padding: var(--space-lg) 0;
  flex-wrap: wrap;
}

.fp-stat {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-family: var(--font-brand);
  font-size: 0.85rem;
  color: var(--fp-navy);
}

.fp-stat-icon {
  font-size: 1.2rem;
}

.fp-stat strong {
  font-size: 1.1rem;
  font-weight: 700;
}

/* ─── Jump Nav ─── */
.fp-jump {
  display: flex;
  justify-content: center;
  gap: var(--space-sm);
  padding: var(--space-md) 0 var(--space-lg);
  flex-wrap: wrap;
}

.fp-jump a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: var(--radius-full);
  font-family: var(--font-brand);
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--fp-navy);
  background: var(--fp-warm);
  border: 1px solid var(--fp-warm-dark);
  transition: all 0.2s;
}

.fp-jump a:hover {
  background: var(--fp-navy);
  color: #fff;
  border-color: var(--fp-navy);
}

/* ─── Quote ─── */
.fp-quote {
  background: var(--fp-warm);
  border-left: 4px solid var(--fp-gold);
  border-radius: var(--radius-md);
  padding: var(--space-xl) var(--space-lg);
  margin: var(--space-lg) 0;
}

.fp-quote p {
  font-family: var(--font-verse);
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--fp-graphite);
  margin: 0;
  font-style: italic;
}

.fp-quote cite {
  display: block;
  margin-top: var(--space-md);
  font-family: var(--font-brand);
  font-size: 0.85rem;
  color: var(--fp-blue);
  font-style: normal;
  font-weight: 600;
}

/* ─── Section Labels ─── */
.fp-section-label {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-lg);
  font-family: var(--font-brand);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--fp-navy);
}

.fp-section-label .label-icon {
  font-size: 1.2rem;
}

/* ─── Steps Grid ─── */
.fp-steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-lg);
}

.fp-step-card {
  background: var(--fp-cream);
  border: 1px solid var(--fp-warm-dark);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  transition: all 0.2s;
}

.fp-step-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.fp-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--fp-navy);
  color: #fff;
  font-family: var(--font-brand);
  font-size: 0.85rem;
  font-weight: 700;
  margin-bottom: var(--space-md);
}

.fp-step-card h3 {
  font-family: var(--font-brand);
  font-size: 1rem;
  font-weight: 700;
  color: var(--fp-navy);
  margin: 0 0 var(--space-sm);
}

.fp-step-card p {
  font-size: 0.88rem;
  line-height: 1.6;
  color: #555;
  margin: 0 0 var(--space-md);
}

.fp-step-verse {
  display: inline-block;
  font-family: var(--font-brand);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--fp-blue);
  background: rgba(45,90,135,0.08);
  padding: 4px 10px;
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: all 0.15s;
}

.fp-step-verse:hover {
  background: var(--fp-blue);
  color: #fff;
}

/* ─── Verses Grid ─── */
.fp-verses-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-md);
}

.fp-verse-card {
  background: var(--fp-cream);
  border: 1px solid var(--fp-warm-dark);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  text-align: center;
  transition: all 0.2s;
}

.fp-verse-card:hover {
  box-shadow: var(--shadow-md);
}

.fp-verse-ref {
  display: inline-block;
  font-family: var(--font-brand);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--fp-gold-dark);
  margin-bottom: var(--space-sm);
}

.fp-verse-text {
  font-family: var(--font-verse);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--fp-graphite);
  margin: 0;
}

/* ─── Tools Grid ─── */
.fp-tools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--space-md);
}

.fp-tool-card {
  display: block;
  background: var(--fp-cream);
  border: 1px solid var(--fp-warm-dark);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  text-decoration: none;
  transition: all 0.2s;
}

.fp-tool-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.fp-tool-card .category {
  display: inline-block;
  font-family: var(--font-brand);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--fp-sage);
  background: var(--fp-sage-light);
  padding: 3px 10px;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-sm);
}

.fp-tool-card h4 {
  font-family: var(--font-brand);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--fp-navy);
  margin: 0 0 var(--space-sm);
}

.fp-tool-card p {
  font-size: 0.82rem;
  line-height: 1.5;
  color: #666;
  margin: 0;
}

/* ─── Promise Cards ─── */
.fp-promises-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: var(--space-md);
}

.fp-promise-card {
  background: linear-gradient(135deg, var(--fp-navy) 0%, var(--fp-blue) 100%);
  color: #fff;
  border-radius: var(--radius-md);
  padding: var(--space-xl);
  text-align: center;
}

.fp-promise-card .promise-icon {
  font-size: 2rem;
  margin-bottom: var(--space-sm);
}

.fp-promise-card h4 {
  font-family: var(--font-brand);
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 var(--space-sm);
  color: var(--fp-gold);
}

.fp-promise-card p {
  font-size: 0.85rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.85);
  margin: 0 0 var(--space-sm);
}

.fp-promise-card .promise-ref {
  font-family: var(--font-brand);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--fp-gold-light);
}

/* ─── Footer ─── */
.fp-footer {
  background: var(--fp-navy);
  color: rgba(255,255,255,0.8);
  padding: var(--space-2xl) 0 var(--space-lg);
  margin-top: var(--space-3xl);
}

.fp-footer-content {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--space-lg);
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--space-xl);
}

.fp-footer h4 {
  font-family: var(--font-brand);
  font-size: 0.9rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 var(--space-md);
}

.fp-footer a {
  display: block;
  color: rgba(255,255,255,0.65);
  text-decoration: none;
  font-size: 0.85rem;
  padding: 3px 0;
  transition: color 0.15s;
}

.fp-footer a:hover {
  color: var(--fp-gold);
}

.fp-footer-bottom {
  text-align: center;
  padding-top: var(--space-lg);
  margin-top: var(--space-lg);
  border-top: 1px solid rgba(255,255,255,0.1);
  font-size: 0.8rem;
  color: rgba(255,255,255,0.5);
}

/* ─── Responsive ─── */
@media (max-width: 768px) {
  .fp-hero-card {
    grid-template-columns: 1fr;
  }
  .fp-hero-panel {
    display: none;
  }
  .fp-hero h1 {
    font-size: 1.5rem;
  }
  .fp-stats {
    gap: var(--space-md);
  }
  .fp-steps-grid {
    grid-template-columns: 1fr;
  }
  .fp-verses-grid {
    grid-template-columns: 1fr;
  }
  .fp-tools-grid {
    grid-template-columns: 1fr;
  }
  .fp-promises-grid {
    grid-template-columns: 1fr;
  }
  .fp-footer-content {
    grid-template-columns: 1fr;
  }
}

/* ─── Devocional Card ─── */
.fp-devocional-card {
  background: var(--fp-cream);
  border: 1px solid var(--fp-warm-dark);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.fp-devocional-header {
  background: linear-gradient(135deg, var(--fp-navy) 0%, var(--fp-blue) 100%);
  color: #fff;
  padding: var(--space-xl);
}

.fp-devocional-badge {
  display: inline-block;
  font-family: var(--font-brand);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--fp-gold);
  margin-bottom: var(--space-sm);
}

.fp-devocional-header h3 {
  font-family: var(--font-brand);
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0 0 var(--space-sm);
  color: #fff;
}

.fp-devocional-verse {
  font-family: var(--font-verse);
  font-size: 0.9rem;
  font-style: italic;
  color: rgba(255,255,255,0.8);
  margin: 0;
}

.fp-devocional-body {
  padding: var(--space-xl);
}

.fp-devocional-body p {
  font-size: 0.92rem;
  line-height: 1.7;
  color: #444;
  margin: 0 0 var(--space-md);
}

.fp-devocional-reflexao,
.fp-devocional-desafio {
  background: var(--fp-warm);
  border-radius: var(--radius-sm);
  padding: var(--space-md);
  margin-top: var(--space-md);
}

.fp-devocional-reflexao h4,
.fp-devocional-desafio h4 {
  font-family: var(--font-brand);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--fp-navy);
  margin: 0 0 var(--space-xs);
}

.fp-devocional-reflexao p,
.fp-devocional-desafio p {
  font-size: 0.85rem;
  line-height: 1.5;
  color: #555;
  margin: 0;
}

.fp-devocional-actions {
  padding: 0 var(--space-xl) var(--space-xl);
  display: flex;
  gap: var(--space-sm);
}

.fp-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  border-radius: var(--radius-full);
  font-family: var(--font-brand);
  font-weight: 600;
  font-size: 0.85rem;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
}

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

.fp-btn-primary:hover {
  background: var(--fp-blue);
}

.fp-btn-done {
  background: var(--fp-sage-light);
  color: var(--fp-sage);
}

/* ─── Progress Bar ─── */
.fp-progress {
  margin-top: var(--space-lg);
}

.fp-progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-sm);
}

.fp-progress-header h4 {
  font-family: var(--font-brand);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--fp-navy);
  margin: 0;
}

.fp-progress-count {
  font-family: var(--font-brand);
  font-size: 0.8rem;
  color: var(--fp-blue);
  font-weight: 600;
}

.fp-progress-bar {
  height: 8px;
  background: var(--fp-warm-dark);
  border-radius: 4px;
  overflow: hidden;
}

.fp-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--fp-navy), var(--fp-blue));
  border-radius: 4px;
  transition: width 0.5s ease;
}
