/* Website cost guide and estimator — article-only styles. */

.prose .article-deck {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.2vw, 1.65rem);
  line-height: 1.45;
  color: var(--color-ink);
}

.prose .article-reviewed,
.prose .article-note,
.prose .article-review {
  padding: var(--space-md) var(--space-lg);
  border-left: 3px solid var(--color-accent);
  background: var(--color-paper-2);
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.prose .article-reviewed strong,
.prose .article-note strong,
.prose .article-review strong {
  color: var(--color-ink);
}

.article-entry-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: var(--space-lg);
  margin: 0 0 var(--space-xl);
  padding: var(--space-lg);
  border: 1px solid var(--color-accent);
  background: var(--color-accent-wash);
}

.article-entry-cta .eyebrow { margin-bottom: var(--space-xs); }
.article-entry-cta__title { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 600; line-height: 1.15; }
.article-entry-cta__title + p { margin-top: var(--space-xs); color: var(--color-muted); }
.article-entry-cta__actions { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: var(--space-sm); }

@media (max-width: 46rem) {
  .article-entry-cta { grid-template-columns: 1fr; align-items: start; }
  .article-entry-cta__actions { justify-content: flex-start; }
  .article-entry-cta__actions .btn { width: 100%; }
}

.prose .cost-quickview {
  padding: var(--space-lg);
  border: 1px solid var(--color-rule-2);
  border-radius: var(--radius);
  background: var(--color-card);
}

.prose .cost-quickview .eyebrow {
  margin-bottom: var(--space-md);
}

.prose .cost-quickview dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--color-rule);
  border-left: 1px solid var(--color-rule);
}

.prose .cost-quickview dl > div {
  min-width: 0;
  padding: var(--space-md);
  border-right: 1px solid var(--color-rule);
  border-bottom: 1px solid var(--color-rule);
}

.prose .cost-quickview dt {
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.prose .cost-quickview dd {
  margin-top: var(--space-xs);
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 700;
  font-variant-numeric: lining-nums tabular-nums;
}

.prose .article-jumps {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  padding: var(--space-md);
  border-top: 1px solid var(--color-rule);
  border-bottom: 1px solid var(--color-rule);
}

.prose .article-jumps a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: var(--space-xs) var(--space-sm);
  border: 1px solid var(--color-rule-2);
  border-radius: var(--radius-sm);
  background: var(--color-card);
  font-size: var(--text-sm);
  font-weight: 600;
}

.prose .article-jumps a:hover {
  border-color: var(--color-accent-strong);
}

.prose .table-wrap {
  max-width: 100%;
  background: var(--color-card);
}

.prose .cost-scenario-table {
  min-width: 54rem;
}

.prose .cost-model-table {
  min-width: 45rem;
}

.prose .table caption {
  padding: var(--space-sm) var(--space-md);
  border-bottom: 1px solid var(--color-rule);
  color: var(--color-muted);
  font-size: var(--text-xs);
  text-align: left;
}

.prose .table tbody th {
  color: var(--color-ink);
  font-size: var(--text-sm);
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
  vertical-align: top;
}

.prose .table td {
  vertical-align: top;
}

.prose .cost-estimator {
  margin-top: var(--space-xl);
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid var(--color-rule-2);
  border-radius: var(--radius);
  background: var(--color-card);
  box-shadow: 0 10px 28px oklch(22% 0.01 60 / 0.07);
}

.prose .cost-estimator [hidden] {
  display: none !important;
}

.prose .cost-estimator__head h2 {
  margin-top: var(--space-xs);
}

.prose .cost-estimator__head > p:not(.eyebrow) {
  margin-top: var(--space-sm);
}

.prose .cost-estimator__privacy {
  padding: var(--space-md);
  border: 1px solid var(--color-rule);
  background: var(--color-paper-2);
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.prose .cost-estimator__privacy strong {
  color: var(--color-ink);
}

.prose .cost-estimator__assumptions {
  margin-top: var(--space-md);
  padding: var(--space-md);
  border: 1px solid var(--color-rule);
  background: var(--color-paper);
}

.prose .cost-estimator__assumptions h3 {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-base);
  letter-spacing: 0;
}

.prose .cost-estimator__assumptions ul {
  margin-top: var(--space-sm);
  font-size: var(--text-sm);
}

.prose .cost-estimator__fallback {
  margin-top: var(--space-lg);
  padding: var(--space-md);
  border: 1px dashed var(--color-rule-2);
  background: var(--color-paper-2);
  font-size: var(--text-sm);
}

.prose .cost-estimator__enhanced,
.prose .cost-estimator__layout {
  margin-top: var(--space-lg);
}

.prose .cost-estimator__layout {
  display: grid;
  gap: var(--space-lg);
}

.prose .cost-estimator__controls {
  display: grid;
  gap: var(--space-md);
}

.prose .estimator-field label,
.prose .estimator-features legend {
  display: block;
  color: var(--color-ink);
  font-size: var(--text-sm);
  font-weight: 700;
}

.prose .estimator-field > p,
.prose .estimator-features > p {
  margin-top: var(--space-xs);
  color: var(--color-muted);
  font-size: var(--text-xs);
}

.prose .estimator-field .select {
  margin-top: var(--space-xs);
}

.prose .estimator-features {
  min-width: 0;
  padding: var(--space-md);
  border: 1px solid var(--color-rule);
}

.prose .estimator-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
  margin-top: var(--space-sm);
}

.prose .estimator-feature-grid label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-sm);
  align-items: start;
  min-height: 56px;
  padding: var(--space-sm);
  border: 1px solid var(--color-rule-2);
  border-radius: var(--radius-sm);
  background: var(--color-paper);
  cursor: pointer;
}

.prose .estimator-feature-grid label:hover,
.prose .estimator-feature-grid label:focus-within {
  border-color: var(--color-accent-strong);
}

.prose .estimator-feature-grid label:focus-within {
  box-shadow: 0 0 0 3px var(--color-focus);
}

.prose .estimator-feature-grid input {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.2rem;
  accent-color: var(--color-accent-strong);
}

.prose .estimator-feature-grid strong,
.prose .estimator-feature-grid small {
  display: block;
}

.prose .estimator-feature-grid strong {
  color: var(--color-ink);
  font-size: var(--text-sm);
}

.prose .estimator-feature-grid small {
  margin-top: 0.15rem;
  color: var(--color-muted);
  font-size: var(--text-xs);
}

.prose .estimator-calculate {
  width: 100%;
  white-space: normal;
}

.prose .cost-estimator__result {
  display: block;
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid var(--color-rule-2);
  border-top: 4px solid var(--color-accent);
  background: var(--color-paper-2);
  color: var(--color-ink-2);
}

.prose .cost-estimator__result-label {
  display: block;
  color: var(--color-muted);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.prose .cost-estimator__range {
  display: block;
  margin-top: var(--space-xs);
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: clamp(2rem, 8vw, 3.25rem);
  line-height: 1;
  font-variant-numeric: lining-nums tabular-nums;
}

.prose .cost-estimator__result > p,
.prose .cost-estimator__result > h3,
.prose .cost-estimator__result > ul,
.prose .cost-estimator__result > a {
  margin-top: var(--space-md);
}

.prose .cost-estimator__result h3 {
  font-family: var(--font-body);
  font-size: var(--text-base);
  letter-spacing: 0;
}

.prose .cost-estimator__categories {
  list-style: none;
  padding: 0;
  border-top: 1px solid var(--color-rule-2);
}

.prose .cost-estimator__categories li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-md);
  padding-block: var(--space-sm);
  border-bottom: 1px solid var(--color-rule-2);
  font-size: var(--text-sm);
}

.prose .cost-estimator__categories li strong {
  flex: none;
  color: var(--color-ink);
  font-variant-numeric: lining-nums tabular-nums;
}

.prose .cost-estimator__not-included {
  color: var(--color-muted);
  font-size: var(--text-xs);
}

.prose .cost-estimator .btn,
.prose .cost-guide-cta {
  border: 1px solid transparent;
  color: var(--color-accent-ink);
}

.prose .methodology-guardrails {
  padding: var(--space-lg);
  border: 1px solid var(--color-rule-2);
  background: var(--color-paper-2);
}

.prose .methodology-guardrails h3 {
  margin: 0;
}

.prose .methodology-guardrails ul {
  margin-top: var(--space-md);
}

.prose .cost-guide-pitch .eyebrow {
  color: var(--color-accent);
}

.prose .cost-guide-pitch h3,
.prose .cost-guide-pitch p,
.prose .cost-guide-pitch a {
  margin-top: var(--space-md);
}

.prose .cost-guide-pitch p {
  color: var(--color-on-ink-2);
}

.prose .source-list li {
  padding-left: var(--space-xs);
}

.prose .citation {
  white-space: nowrap;
}

@media (max-width: 42rem) {
  .prose .cost-quickview dl,
  .prose .estimator-feature-grid {
    grid-template-columns: 1fr;
  }

  .prose .cost-estimator,
  .prose .cost-estimator__result {
    padding: var(--space-md);
  }

  .prose .cost-estimator__categories li {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--space-2xs);
  }

  .prose .cost-estimator .btn,
  .prose .cost-guide-cta {
    width: 100%;
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .prose .cost-estimator *,
  .prose .article-jumps * {
    scroll-behavior: auto;
  }
}
