/* ============================================================
   PAGES.CSS — Shared subpage styles
   Used by: service pages, studio pages, about, blog, legal, SaaS
   Requires: style.css (base CSS variables + typography + header/footer)
============================================================ */

/* ── BREADCRUMB ──────────────────────────────────────────── */
.breadcrumb {
  padding: 0.875rem var(--pad-x);
  padding-top: calc(var(--header-h, 72px) + 0.875rem);
  background: var(--color-bg);
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.breadcrumb-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: var(--color-gray-d, #555);
}
.breadcrumb a {
  color: var(--color-gray, #888);
  text-decoration: none;
  transition: color var(--transition);
}
.breadcrumb a:hover { color: var(--color-orange); }
.breadcrumb-sep { color: var(--color-gray-d, #555); }
.breadcrumb-current { color: var(--color-gray-d, #555); }

/* ── PAGE HERO ───────────────────────────────────────────── */
/* When preceded by breadcrumb, the header offset is already handled by .breadcrumb padding-top */
.breadcrumb + .page-hero {
  padding-top: 3rem;
}
.page-hero {
  padding: calc(var(--header-h, 72px) + 4rem) var(--pad-x) 4rem;
  background: var(--color-bg);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(228,143,59,0.06) 0%, transparent 70%);
  pointer-events: none;
}
.page-hero-inner {
  position: relative;
  max-width: 860px;
  margin: 0 auto;
}
.page-hero .hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-orange);
  margin-bottom: 1.25rem;
}
.page-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5.5vw, 4rem);
  line-height: 1.05;
  letter-spacing: 0.02em;
  color: var(--color-white, #fff);
  margin-bottom: 1.5rem;
}
.page-hero .page-hero-sub {
  font-size: 1.05rem;
  color: var(--color-gray, #888);
  line-height: 1.7;
  margin-bottom: 2rem;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}
.page-hero-ctas {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* ── SECTION WRAPPERS ────────────────────────────────────── */
.section-dark     { padding: 3rem var(--pad-x); background: var(--color-bg); }
.section-dark-alt { padding: 3rem var(--pad-x); background: var(--color-bg-2, #111); }
.section-orange   { padding: 3rem var(--pad-x); background: var(--color-orange); }
.section-inner    { max-width: var(--max-w); margin: 0 auto; }
.section-header   { margin-bottom: 2rem; }
.section-header.centered { text-align: center; }

/* ── PAIN CARDS (Challenger Reframe — 3 dores) ───────────── */
.pain-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 600px) { .pain-grid { grid-template-columns: repeat(3, 1fr); } }

.pain-card {
  background: var(--color-bg-3, #1a1a1a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 2rem;
  transition: border-color var(--transition);
}
.pain-card:hover { border-color: rgba(228,143,59,0.3); }
.pain-card-num {
  font-family: var(--font-display);
  font-size: 2.5rem;
  color: var(--color-orange);
  margin-bottom: 0.75rem;
  line-height: 1;
}
.pain-card h3 {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-white, #fff);
  margin-bottom: 0.75rem;
}
.pain-card p {
  font-size: 0.875rem;
  color: var(--color-gray, #888);
  line-height: 1.75;
}

/* ── SOLUTION STEPS (3 passos) ───────────────────────────── */
.steps-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  counter-reset: step-counter;
}
@media (min-width: 769px) { .steps-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 769px) { .steps-grid--2col { grid-template-columns: repeat(2, 1fr); } }

.step-card {
  text-align: center;
  counter-increment: step-counter;
  padding: 2rem 1.5rem;
  background: var(--color-bg-3, #1a1a1a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
}
.step-card::before {
  content: counter(step-counter, decimal-leading-zero);
  font-family: var(--font-display);
  font-size: 3rem;
  color: var(--color-orange);
  display: block;
  margin-bottom: 1rem;
  line-height: 1;
}
.step-card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-white, #fff);
  margin-bottom: 0.5rem;
}
.step-card p {
  font-size: 0.875rem;
  color: var(--color-gray, #888);
  line-height: 1.75;
}

/* ── SPECS GRID ──────────────────────────────────────────── */
.specs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}
@media (min-width: 769px) { .specs-grid { grid-template-columns: repeat(4, 1fr); } }

.spec-item {
  background: var(--color-bg-3, #1a1a1a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 1.5rem;
  text-align: center;
  transition: border-color var(--transition);
}
.spec-item:hover { border-color: rgba(228,143,59,0.3); }
.spec-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gray, #888);
  margin-bottom: 0.5rem;
}
.spec-value {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--color-orange);
  line-height: 1.2;
}
.spec-unit {
  font-size: 0.78rem;
  color: var(--color-gray, #888);
  margin-top: 0.25rem;
}

/* ── USE CASE CARDS ──────────────────────────────────────── */
.usecase-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 600px) { .usecase-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .usecase-grid { grid-template-columns: repeat(4, 1fr); } }

.usecase-card {
  background: var(--color-bg-3, #1a1a1a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 1.5rem;
  transition: border-color var(--transition), transform var(--transition);
}
.usecase-card:hover {
  border-color: var(--color-orange);
  transform: translateY(-2px);
}
.usecase-card h4 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-white, #fff);
  margin-bottom: 0.5rem;
}
.usecase-card p {
  font-size: 0.85rem;
  color: var(--color-gray, #888);
  line-height: 1.65;
}

/* ── GALLERY GRID ────────────────────────────────────────── */
.gallery-section { padding: 5rem var(--pad-x); background: var(--color-bg); }
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 769px) { .gallery-grid { grid-template-columns: repeat(3, 1fr); } }

.gallery-grid img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  border-radius: var(--radius);
  display: block;
  transition: transform var(--transition), filter var(--transition);
}
.gallery-grid img:hover {
  transform: scale(1.02);
  filter: brightness(1.05);
}

/* ── PRICING CARDS ───────────────────────────────────────── */
.pricing-section { padding: 5rem var(--pad-x); background: var(--color-bg-2, #111); }
.pricing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 769px) { .pricing-grid { grid-template-columns: repeat(3, 1fr); } }

.pricing-card {
  background: var(--color-bg-3, #1a1a1a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: border-color var(--transition);
}
.pricing-card--featured {
  border-color: var(--color-orange);
  position: relative;
}
.pricing-card--featured::before {
  content: 'Mais popular';
  position: absolute;
  top: -0.8rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--color-orange);
  color: #000;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.25rem 0.875rem;
  border-radius: 100px;
  white-space: nowrap;
}
.pricing-card-name {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gray, #888);
}
.pricing-card-price {
  font-family: var(--font-display);
  font-size: 2.5rem;
  color: var(--color-white, #fff);
  line-height: 1;
}
.pricing-card-price sup {
  font-size: 1rem;
  vertical-align: top;
  margin-top: 0.4rem;
  display: inline-block;
}
.pricing-card-period {
  font-size: 0.8rem;
  color: var(--color-gray, #888);
}
.pricing-card-desc {
  font-size: 0.875rem;
  color: var(--color-gray, #888);
  line-height: 1.65;
}
.pricing-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  flex: 1;
}
.pricing-card ul li {
  font-size: 0.85rem;
  color: var(--color-gray, #888);
  padding-left: 1.5rem;
  position: relative;
}
.pricing-card ul li::before {
  content: '▸';
  position: absolute;
  left: 0;
  color: var(--color-orange);
}

/* ── PAGE FAQ ─────────────────────────────────────────────── */
.page-faq {
  padding: 3rem var(--pad-x);
  background: var(--color-bg-2, #111);
}
.page-faq-inner {
  max-width: 760px;
  margin: 0 auto;
}
.page-faq-header {
  text-align: center;
  margin-bottom: 2rem;
}

/* ── PAGE CTA FINAL ───────────────────────────────────────── */
.page-cta {
  padding: 4rem var(--pad-x);
  background: var(--color-orange);
  text-align: center;
}
.page-cta-inner {
  max-width: 640px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}
.page-cta h2 {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  color: #000;
  line-height: 1.1;
}
.page-cta p {
  font-size: 1rem;
  color: rgba(0,0,0,0.6);
  line-height: 1.65;
}
.page-cta .btn-dark {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #000;
  color: var(--color-orange);
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 1rem 2.5rem;
  border-radius: 4px;
  text-decoration: none;
  transition: background var(--transition), transform var(--transition);
}
.page-cta .btn-dark:hover {
  background: #1a1a1a;
  transform: translateY(-2px);
}
.page-cta-note {
  font-size: 0.8rem;
  color: rgba(0,0,0,0.5);
  margin-top: -0.5rem;
}

/* ── CROSS-SELL / RELATED CARDS ──────────────────────────── */
.related-section {
  padding: 3rem var(--pad-x);
  background: var(--color-bg);
}
.related-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 600px) { .related-grid { grid-template-columns: repeat(3, 1fr); } }

.related-card {
  background: var(--color-bg-3, #1a1a1a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 1.75rem;
  text-decoration: none;
  display: block;
  transition: border-color var(--transition), transform var(--transition);
}
.related-card:hover {
  border-color: var(--color-orange);
  transform: translateY(-3px);
}
.related-card-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-orange);
  margin-bottom: 0.5rem;
}
.related-card h3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-white, #fff);
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
.related-card p {
  font-size: 0.82rem;
  color: var(--color-gray, #888);
  line-height: 1.6;
}

/* ── BLOG CARDS ──────────────────────────────────────────── */
.blog-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 600px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .blog-grid { grid-template-columns: repeat(3, 1fr); } }

.blog-card {
  background: var(--color-bg-3, #1a1a1a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  overflow: hidden;
  text-decoration: none;
  display: block;
  transition: border-color var(--transition), transform var(--transition);
}
.blog-card:hover {
  border-color: var(--color-orange);
  transform: translateY(-4px);
}
.blog-card-thumb {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--color-bg-3, #1a1a1a);
}
.blog-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--transition);
}
.blog-card:hover .blog-card-thumb img { transform: scale(1.04); }
.blog-card-body { padding: 1.5rem; }
.blog-card-cat {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-orange);
  margin-bottom: 0.5rem;
}
.blog-card-title {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-white, #fff);
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
.blog-card-excerpt {
  font-size: 0.82rem;
  color: var(--color-gray, #888);
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.blog-card-meta {
  font-size: 0.72rem;
  color: var(--color-gray-d, #555);
  margin-top: 0.75rem;
}

/* ── LEGAL PAGES ──────────────────────────────────────────── */
.legal-hero {
  padding: calc(var(--header-h, 72px) + 3rem) var(--pad-x) 3rem;
  background: var(--color-bg);
  text-align: center;
}
.legal-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--color-white, #fff);
  margin-bottom: 0.5rem;
}
.legal-hero p {
  font-size: 0.875rem;
  color: var(--color-gray, #888);
}
.legal-content {
  padding: 4rem var(--pad-x) 6rem;
  background: var(--color-bg);
}
.legal-inner {
  max-width: 760px;
  margin: 0 auto;
}
.legal-inner h2 {
  font-family: var(--font-display);
  font-size: 1.6rem;
  color: var(--color-white, #fff);
  margin: 2.5rem 0 0.875rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.05);
}
.legal-inner h2:first-child { border-top: none; margin-top: 0; padding-top: 0; }
.legal-inner h3 {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-white, #fff);
  margin: 1.5rem 0 0.5rem;
}
.legal-inner p {
  font-size: 0.9rem;
  color: var(--color-gray, #888);
  line-height: 1.8;
  margin-bottom: 0.875rem;
}
.legal-inner ul {
  padding-left: 1.5rem;
  margin-bottom: 0.875rem;
}
.legal-inner ul li {
  font-size: 0.9rem;
  color: var(--color-gray, #888);
  line-height: 1.8;
  margin-bottom: 0.4rem;
}
.legal-inner a {
  color: var(--color-orange);
  text-decoration: underline;
  transition: opacity var(--transition);
}
.legal-inner a:hover { opacity: 0.8; }

/* ── ABOUT PAGE ───────────────────────────────────────────── */
.about-timeline {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  position: relative;
}
@media (min-width: 769px) {
  .about-timeline { grid-template-columns: repeat(4, 1fr); }
}
.timeline-item {
  text-align: center;
  padding: 2rem 1.5rem;
  background: var(--color-bg-3, #1a1a1a);
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,0.06);
}
.timeline-year {
  font-family: var(--font-display);
  font-size: 2rem;
  color: var(--color-orange);
  margin-bottom: 0.5rem;
}
.timeline-item h3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-white, #fff);
  margin-bottom: 0.5rem;
}
.timeline-item p {
  font-size: 0.82rem;
  color: var(--color-gray, #888);
  line-height: 1.65;
}

/* ── VALUES GRID ──────────────────────────────────────────── */
.values-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 600px) { .values-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .values-grid { grid-template-columns: repeat(3, 1fr); } }

.value-card {
  background: var(--color-bg-3, #1a1a1a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 1.75rem;
  transition: border-color var(--transition);
}
.value-card:hover { border-color: rgba(228,143,59,0.3); }
.value-card-num {
  font-family: var(--font-display);
  font-size: 1.8rem;
  color: var(--color-orange);
  margin-bottom: 0.5rem;
}
.value-card h3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-white, #fff);
  margin-bottom: 0.5rem;
}
.value-card p {
  font-size: 0.85rem;
  color: var(--color-gray, #888);
  line-height: 1.7;
}

/* ── SAAS FEATURES ────────────────────────────────────────── */
.features-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 600px) { .features-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .features-grid { grid-template-columns: repeat(3, 1fr); } }

.feature-card {
  background: var(--color-bg-3, #1a1a1a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 2rem;
  transition: border-color var(--transition);
}
.feature-card:hover { border-color: rgba(228,143,59,0.3); }
.feature-card-icon {
  width: 48px;
  height: 48px;
  background: rgba(228,143,59,0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  color: var(--color-orange);
}
.feature-card h3 {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-white, #fff);
  margin-bottom: 0.5rem;
}
.feature-card p {
  font-size: 0.875rem;
  color: var(--color-gray, #888);
  line-height: 1.7;
}

/* ── PAGE UTILITY ─────────────────────────────────────────── */
.page-section-title {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  color: var(--color-white, #fff);
  margin-bottom: 1rem;
  line-height: 1.1;
}
.page-section-sub {
  font-size: 1rem;
  color: var(--color-gray, #888);
  line-height: 1.7;
  max-width: 600px;
}
.page-section-sub.centered {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.page-divider {
  height: 1px;
  background: rgba(255,255,255,0.05);
  margin: 0;
}

/* ── BLOG CONTROLS ───────────────────────────────── */
.blog-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  justify-content: space-between;
}
.blog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.blog-filter-btn {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.1);
  color: var(--color-gray);
  padding: 0.4rem 1rem;
  border-radius: 100px;
  font-size: 0.8rem;
  cursor: pointer;
  transition: all var(--transition);
  font-family: inherit;
}
.blog-filter-btn:hover,
.blog-filter-btn.active {
  border-color: var(--color-orange);
  color: var(--color-orange);
  background: rgba(228,143,59,0.1);
}
.blog-search-wrap { flex: 1; min-width: 200px; max-width: 320px; }
.blog-search {
  width: 100%;
  background: var(--color-bg-3);
  border: 1px solid rgba(255,255,255,0.08);
  color: var(--color-white);
  padding: 0.6rem 1rem;
  border-radius: var(--radius);
  font-size: 0.85rem;
  font-family: inherit;
  outline: none;
  transition: border-color var(--transition);
}
.blog-search:focus { border-color: var(--color-orange); }
.blog-search::placeholder { color: var(--color-gray-d); }

/* ── BLOG LOADING ────────────────────────────────── */
.blog-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 4rem 0;
  color: var(--color-gray);
  font-size: 0.9rem;
}
.blog-loading-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid rgba(255,255,255,0.08);
  border-top-color: var(--color-orange);
  border-radius: 50%;
  animation: blog-spin 0.8s linear infinite;
}
@keyframes blog-spin { to { transform: rotate(360deg); } }

/* ── BLOG PAGINATION ─────────────────────────────── */
.blog-pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 3rem;
}
.blog-page-btn {
  width: 40px;
  height: 40px;
  background: var(--color-bg-3);
  border: 1px solid rgba(255,255,255,0.08);
  color: var(--color-gray);
  border-radius: var(--radius);
  font-size: 0.85rem;
  cursor: pointer;
  font-family: inherit;
  transition: all var(--transition);
}
.blog-page-btn:hover,
.blog-page-btn.active {
  background: var(--color-orange);
  border-color: var(--color-orange);
  color: #000;
}

/* ── BLOG EMPTY ──────────────────────────────────── */
.blog-empty {
  grid-column: 1 / -1;
  padding: 4rem 0;
  text-align: center;
  color: var(--color-gray);
}
.blog-empty a { color: var(--color-orange); }

/* ── BLOG CARD EXTRAS ────────────────────────────── */
.blog-card-date {
  display: block;
  font-size: 0.72rem;
  color: var(--color-gray-d);
  margin-top: 0.75rem;
}
.blog-card-thumb--placeholder {
  background: var(--color-bg-3);
  aspect-ratio: 16/9;
}

/* ── ARTIGO (ARTICLE) ────────────────────────────── */
.artigo-hero {
  padding: calc(var(--header-h) + 3rem) var(--pad-x) 3rem;
  background: var(--color-bg);
}
.artigo-hero-inner {
  max-width: 800px;
  margin: 0 auto;
}
.artigo-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.artigo-cat {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-orange);
}
.artigo-date {
  font-size: 0.78rem;
  color: var(--color-gray-d);
}
.artigo-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.08;
  letter-spacing: 0.02em;
  color: var(--color-white);
  margin-bottom: 1.25rem;
}
.artigo-excerpt {
  font-size: 1.05rem;
  color: var(--color-gray);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}
.artigo-author-name {
  font-size: 0.82rem;
  color: var(--color-gray-d);
}
.artigo-thumb-wrap {
  max-width: 900px;
  margin: 0 auto 0;
  padding: 0 var(--pad-x);
}
.artigo-thumb {
  width: 100%;
  height: auto;
  max-height: 480px;
  object-fit: cover;
  border-radius: var(--radius);
}
.artigo-body-section {
  padding: 4rem var(--pad-x);
  background: var(--color-bg);
}
.artigo-body-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 900px) {
  .artigo-body-inner { grid-template-columns: 1fr 280px; }
}
.artigo-body {
  color: var(--color-gray);
  font-size: 1rem;
  line-height: 1.85;
}
.artigo-body h2 {
  font-family: var(--font-display);
  font-size: 1.8rem;
  color: var(--color-white);
  margin: 2rem 0 0.75rem;
}
.artigo-body h3 {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--color-white);
  margin: 1.5rem 0 0.5rem;
}
.artigo-body p { margin-bottom: 1rem; }
.artigo-body ul, .artigo-body ol { padding-left: 1.5rem; margin-bottom: 1rem; }
.artigo-body li { margin-bottom: 0.4rem; }
.artigo-body a { color: var(--color-orange); text-decoration: underline; }
.artigo-body blockquote {
  border-left: 3px solid var(--color-orange);
  padding-left: 1.25rem;
  margin: 1.5rem 0;
  font-size: 1.05rem;
  color: var(--color-off-white);
  font-style: italic;
}
.artigo-body strong { color: var(--color-white); font-weight: 600; }

/* Audio player */
.artigo-audio-player {
  background: var(--color-bg-3);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin-bottom: 2rem;
}
.artigo-audio-label {
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: var(--color-orange);
  margin-bottom: 0.5rem;
  letter-spacing: 0.02em;
}
.artigo-audio-player audio {
  border-radius: 6px;
}

.artigo-sidebar { position: sticky; top: calc(var(--header-h) + 1rem); align-self: start; }
.artigo-sidebar-card {
  background: var(--color-bg-3);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 1.75rem;
}
.artigo-sidebar-card h3 {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--color-white);
  margin-bottom: 0.75rem;
}
.artigo-sidebar-card p {
  font-size: 0.85rem;
  color: var(--color-gray);
  line-height: 1.65;
  margin-bottom: 1.25rem;
}

/* ── SAAS PAGES ──────────────────────────────────── */
.saas-hero {
  padding: calc(var(--header-h) + 5rem) var(--pad-x) 5rem;
  background: var(--color-bg);
  text-align: center;
}
.saas-hero-inner { max-width: 820px; margin: 0 auto; }
.saas-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(3rem, 7vw, 5.5rem);
  line-height: 1.04;
  letter-spacing: 0.02em;
  color: var(--color-white);
  margin-bottom: 1.5rem;
}
.saas-hero p {
  font-size: 1.1rem;
  color: var(--color-gray);
  line-height: 1.7;
  margin-bottom: 2rem;
}
.saas-hero-btns {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}
.saas-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-orange);
  border: 1px solid var(--color-orange);
  padding: 0.3rem 0.8rem;
  border-radius: 100px;
  margin-bottom: 1.25rem;
}
.features-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.features-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.95rem;
  color: var(--color-gray);
  line-height: 1.6;
}
.features-list li::before {
  content: '&#9658;';
  color: var(--color-orange);
  flex-shrink: 0;
  margin-top: 0.15em;
}
.module-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 600px) { .module-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .module-grid { grid-template-columns: repeat(3, 1fr); } }
.module-card {
  background: var(--color-bg-3);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 2rem;
  transition: border-color var(--transition);
}
.module-card:hover { border-color: var(--color-orange); }
.module-num {
  font-family: var(--font-display);
  font-size: 2.5rem;
  color: var(--color-orange);
  line-height: 1;
  margin-bottom: 0.75rem;
}
.module-card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-white);
  margin-bottom: 0.5rem;
}
.module-card p {
  font-size: 0.88rem;
  color: var(--color-gray);
  line-height: 1.65;
}

/* ── BTN-OUTLINE ─────────────────────────────────── */
.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 2rem;
  border: 1.5px solid var(--color-orange);
  color: var(--color-orange);
  border-radius: var(--radius);
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  transition: background var(--transition), color var(--transition);
  background: transparent;
  cursor: pointer;
  font-family: inherit;
}
.btn-outline:hover {
  background: var(--color-orange);
  color: #000;
}

/* ── BTN-DARK (page-cta inverse) ─────────────────── */
.btn-dark {
  background: #000 !important;
  color: var(--color-orange) !important;
}
.btn-dark:hover {
  background: #1a1a1a !important;
}

/* ── SECTION-SUB ─────────────────────────────────── */
.section-sub {
  font-size: 1rem;
  color: var(--color-gray);
  line-height: 1.75;
  max-width: 640px;
}

/* ── PRICING CARD SUB-ELEMENTS ───────────────────── */
.pricing-card-name {
  font-family: var(--font-display);
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  color: var(--color-white);
  margin-bottom: 0.75rem;
}
.pricing-card-price {
  margin-bottom: 0.75rem;
}
.pricing-card-price strong {
  font-family: var(--font-display);
  font-size: 2.5rem;
  color: var(--color-orange);
  letter-spacing: 0.02em;
}
.pricing-card-price span {
  font-size: 0.85rem;
  color: var(--color-gray);
  margin-left: 0.25rem;
}
.pricing-card-desc {
  font-size: 0.85rem;
  color: var(--color-gray);
  line-height: 1.6;
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

/* ── STATS MINI GRID (SaaS pages) ────────────────── */
.stats-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  max-width: 700px;
  margin: 0 auto;
}
@media (min-width: 600px) { .stats-mini-grid { grid-template-columns: repeat(4, 1fr); } }
.stats-mini-item {
  text-align: center;
}
.stats-mini-item .stat-counter {
  display: block;
  font-family: var(--font-display);
  font-size: 2.5rem;
  color: var(--color-orange);
  letter-spacing: 0.04em;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.stats-mini-item span:last-child {
  font-size: 0.8rem;
  color: var(--color-gray-d);
  line-height: 1.4;
}

/* ── EYEBROW LABEL (service page section headers) ── */
.eyebrow-label {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--color-orange);
  margin-bottom: 0.75rem;
}

/* ── SECTION HEADER h2 (service pages) ──────────── */
.section-header h2 {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4.5vw, 3rem);
  color: var(--color-white, #fff);
  line-height: 1.1;
  margin-bottom: 0.75rem;
}
.section-header .section-sub {
  font-size: 1rem;
  color: var(--color-gray, #888);
  line-height: 1.7;
  max-width: 640px;
}
.section-header.centered .section-sub {
  margin-left: auto;
  margin-right: auto;
}

/* ── STEP-NUM (explicit number inside step-card) ── */
.step-num {
  font-family: var(--font-display);
  font-size: 3rem;
  color: var(--color-orange);
  line-height: 1;
  margin-bottom: 1rem;
}
/* Hide the ::before counter when an explicit .step-num is present */
.step-card:has(.step-num)::before {
  display: none;
}

/* ── NAV ACTIVE STATE ────────────────────────────── */
.nav-link--active {
  color: var(--color-orange) !important;
}
