/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Brand headline treatment (matches mobydick3pl.com: Montserrat 900 uppercase).
   !important beats Tailwind's .font-bold on existing headings; add .no-brand-caps
   to any heading that should stay sentence case. */
h1:not(.no-brand-caps),
h2:not(.no-brand-caps) {
  text-transform: uppercase;
  font-weight: 900 !important;
  letter-spacing: -0.01em;
}

/* Dropdown animation */
.group:hover .group-hover\:opacity-100 {
  transition-delay: 0ms;
}

/* Multi-step form transitions */
.form-step {
  display: none;
}
.form-step.active {
  display: block;
  animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Stats counter animation */
.stat-number {
  font-variant-numeric: tabular-nums;
}

/* Gradient text utility */
.text-gradient {
  background: linear-gradient(135deg, #e8552f, #fb923c);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Card hover effects */
.service-card {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px -8px rgba(0, 0, 0, 0.2);
}

/* Testimonial carousel */
.testimonial-track {
  transition: transform 0.5s ease-in-out;
}

/* Blog post body typography (markdown output gets no utility classes) */
.post-body { color: #374151; font-size: 1.125rem; line-height: 1.75; }
.post-body h2 { text-transform: none; font-weight: 800 !important; font-size: 1.6rem; color: #181818; margin: 2.25rem 0 0.9rem; }
.post-body h3 { font-weight: 700; font-size: 1.25rem; color: #181818; margin: 1.75rem 0 0.6rem; }
.post-body p { margin-bottom: 1.15rem; }
.post-body ul, .post-body ol { margin: 0 0 1.15rem 1.4rem; }
.post-body ul { list-style: disc; }
.post-body ol { list-style: decimal; }
.post-body li { margin-bottom: 0.45rem; }
.post-body a { color: #cc462b; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.post-body a:hover { color: #b93a20; }
.post-body strong { color: #181818; }
.post-body blockquote { border-left: 4px solid #e8552f; padding-left: 1rem; color: #4b5563; font-style: italic; margin: 1.5rem 0; }

/* Client portal: collapsible categories with nested topics */
.portal-cat { background: #fff; border: 1px solid #e6e6e6; border-radius: 1rem; margin-bottom: 1rem; scroll-margin-top: 6rem; overflow: hidden; }
.portal-cat > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 1.5rem; }
.portal-cat > summary::-webkit-details-marker { display: none; }
.portal-cat > summary .cat-title { font-family: Montserrat, sans-serif; font-weight: 900; text-transform: uppercase; font-size: 1.15rem; color: #181818; }
.portal-cat > summary .cat-sub { color: #6b7280; font-size: 0.85rem; font-weight: 500; margin-top: 0.15rem; }
.portal-cat > summary .cat-chevron { flex-shrink: 0; margin-left: 1rem; transition: transform 0.2s ease; color: #e8552f; }
.portal-cat[open] > summary { border-bottom: 1px solid #e6e6e6; }
.portal-cat[open] > summary .cat-chevron { transform: rotate(180deg); }

.portal-topic { border-bottom: 1px solid #f3f3f3; }
.portal-topic:last-child { border-bottom: 0; }
.portal-topic > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; padding: 0.9rem 1.5rem; font-weight: 700; color: #181818; }
.portal-topic > summary::-webkit-details-marker { display: none; }
.portal-topic > summary .topic-chevron { flex-shrink: 0; margin-left: 1rem; color: #9ca3af; transition: transform 0.2s ease; }
.portal-topic[open] > summary .topic-chevron { transform: rotate(180deg); }
.portal-topic[open] > summary { color: #cc462b; }
.portal-topic-body { padding: 0.25rem 1.5rem 1.5rem; color: #374151; line-height: 1.7; }
.portal-topic-body h4 { font-weight: 700; font-size: 1rem; color: #181818; margin: 1.2rem 0 0.5rem; }
.portal-topic-body p { margin-bottom: 1rem; }
.portal-topic-body ul, .portal-topic-body ol { margin: 0 0 1rem 1.4rem; list-style: disc; }
.portal-topic-body li { margin-bottom: 0.4rem; }
.portal-topic-body a { color: #cc462b; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.portal-topic-body a:hover { color: #b93a20; }
.portal-topic-body strong { color: #181818; }
.portal-topic-body img { border: 1px solid #e6e6e6; border-radius: 0.75rem; margin: 1rem 0 1.5rem; max-width: 100%; }
.portal-video { position: relative; padding-bottom: 56.25%; height: 0; margin: 1rem 0 1.5rem; border-radius: 0.75rem; overflow: hidden; }
.portal-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Integration logo bar */
.logo-bar img {
  filter: grayscale(100%) opacity(60%);
  transition: filter 0.2s ease;
}
.logo-bar img:hover {
  filter: grayscale(0%) opacity(100%);
}
