/* ==========================================================================
   Toolbeel Finance — Long-form content (guides, calculator explanations, legal pages)
   ========================================================================== */

.breadcrumb {
  font-size: 0.875rem;
  color: var(--color-text-subtle);
  padding-top: var(--space-7);
  padding-bottom: var(--space-5);
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.breadcrumb li {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.breadcrumb li:not(:last-child)::after {
  content: "\203A";
  color: var(--color-border-strong);
  font-weight: 400;
}

.breadcrumb a {
  color: var(--color-text-subtle);
}

.breadcrumb a:hover {
  color: var(--color-primary);
}

.breadcrumb [aria-current="page"] {
  color: var(--color-text);
  font-weight: 600;
}

/* content-block shares the .container box (same width, padding and left
   edge as the breadcrumb) so headings stay aligned with the rest of the
   page; only the reading text itself is capped to a narrower column. */
.content-block > p,
.content-block > ul,
.content-block > ol,
.content-block > .formula-box,
.content-block > table {
  max-width: var(--max-width-narrow);
}

.page-intro {
  max-width: var(--max-width-narrow);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.page-intro p {
  max-width: 65ch;
  margin-left: auto;
  margin-right: auto;
}

.content-block h2 {
  margin-top: var(--space-7);
}

.content-block h3 {
  margin-top: var(--space-5);
}

.content-block ul,
.content-block ol {
  margin-bottom: var(--space-4);
  padding-left: var(--space-5);
}

.content-block ul {
  list-style: disc;
}

.content-block ol {
  list-style: decimal;
}

.content-block table {
  margin: var(--space-4) 0 var(--space-6);
  font-size: 0.95rem;
}

.content-block th,
.content-block td {
  text-align: left;
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--color-border);
}

.content-block th {
  color: var(--color-text-muted);
  font-weight: 600;
}

.formula-box {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
  font-family: var(--font-mono);
  font-size: 0.95rem;
  overflow-x: auto;
  margin-bottom: var(--space-5);
}

.callout {
  border-left: 3px solid var(--color-primary);
  background: var(--color-primary-light);
  padding: var(--space-4) var(--space-5);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  margin-bottom: var(--space-5);
}

.disclaimer-note {
  border-left: 3px solid var(--color-warning);
  background: #fffbeb;
  padding: var(--space-4) var(--space-5);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: 0.9rem;
  color: var(--color-text-muted);
}

.page-meta {
  margin-top: var(--space-3);
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

/* FAQ accordion
   ========================================================================== */
.faq-list {
  border-top: 1px solid var(--color-border);
}

.faq-item {
  border-bottom: 1px solid var(--color-border);
}

.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4) 0;
  background: none;
  border: none;
  text-align: left;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  color: var(--color-text);
}

.faq-question::after {
  content: "+";
  flex-shrink: 0;
  font-size: 1.3rem;
  color: var(--color-text-subtle);
  transition: transform var(--transition-fast);
}

.faq-question[aria-expanded="true"]::after {
  transform: rotate(45deg);
}

.faq-answer {
  padding: 0 0 var(--space-4);
  color: var(--color-text-muted);
}

.faq-answer[hidden] {
  display: none;
}

/* Related calculators
   ========================================================================== */
.related-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.related-card {
  display: block;
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  color: var(--color-text);
}

.related-card:hover {
  border-color: var(--color-primary);
  text-decoration: none;
}

.related-card .related-card-title {
  font-weight: 600;
  margin-bottom: var(--space-1);
  display: block;
}

.related-card .related-card-desc {
  font-size: 0.85rem;
  color: var(--color-text-subtle);
}

.related-card.is-disabled {
  background: var(--color-surface);
  cursor: default;
}

.related-card.is-disabled:hover {
  border-color: var(--color-border);
}

.related-card .related-card-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

/* Cards used on category/home pages
   ========================================================================== */
.card-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.card {
  display: block;
  padding: var(--space-5);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.card:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-sm);
  text-decoration: none;
}

.card-icon {
  display: block;
  width: 28px;
  height: 28px;
  margin-bottom: var(--space-3);
  color: var(--color-primary);
}

.card-icon svg {
  width: 100%;
  height: 100%;
}

.card h3 {
  margin-bottom: var(--space-1);
}

.card p {
  color: var(--color-text-subtle);
  font-size: 0.9rem;
  margin-bottom: 0;
}

.card.is-disabled {
  background: var(--color-surface);
  cursor: default;
}

.card.is-disabled:hover {
  border-color: var(--color-border);
  box-shadow: none;
}

.card.is-disabled h3 {
  color: var(--color-text-muted);
}

.card-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}

.card-count {
  display: block;
  font-size: 0.8rem;
  color: var(--color-primary);
  font-weight: 600;
  margin-top: var(--space-2);
}

.category-section {
  margin-bottom: var(--space-7);
}

.category-section-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.category-section-header h2 {
  margin-bottom: 0;
}

.category-section-header a {
  font-size: 0.9rem;
  white-space: nowrap;
}
