:root {
  --budgetic-ink: #071338;
  --budgetic-muted: #526078;
  --budgetic-accent: #167565;
  --budgetic-accent-dark: #0d594d;
  --budgetic-line: #dfe6e8;
  --budgetic-soft: #f3f7f6;
  --budgetic-paper: #ffffff;
}

html { scroll-behavior: smooth; }

body,
button,
input,
select,
textarea,
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Sora", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
  color: var(--budgetic-ink);
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { text-underline-offset: .18em; }

.site-header {
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid rgba(7, 19, 56, .08);
  box-shadow: none;
  backdrop-filter: blur(14px);
}

.ast-primary-header-bar { min-height: 76px; }

.main-header-menu > .menu-item > .menu-link {
  position: relative;
  color: var(--budgetic-ink);
  font-size: 14px;
  font-weight: 560;
}

.main-header-menu > .menu-item > .menu-link::after { display: none; }

.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .current-menu-item > .menu-link {
  color: var(--budgetic-accent-dark);
}

.ast-custom-button,
button,
.button,
input[type="submit"],
.wpforms-submit {
  border-radius: 9px !important;
  box-shadow: none !important;
  font-weight: 650 !important;
  letter-spacing: -.01em;
  transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease !important;
}

.ast-custom-button:hover,
button:hover,
.button:hover,
input[type="submit"]:hover,
.wpforms-submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(13, 89, 77, .16) !important;
}

.site-below-footer-wrap {
  border-top: 1px solid var(--budgetic-line);
  background: var(--budgetic-soft);
}

.site-below-footer-wrap a { color: var(--budgetic-ink); }

/* Shared editorial shell */
.budgetic-resource-hub,
.budgetic-editorial { background: var(--budgetic-paper); }

.budgetic-resource-hub .site-content,
.budgetic-editorial .site-content { overflow: clip; }

.budgetic-resource-hub .ast-container,
.budgetic-editorial .ast-container {
  width: min(100% - 48px, 1180px);
  max-width: none;
  padding: 0;
}

.budgetic-resource-hub .site-main,
.budgetic-editorial .site-main { padding: 0; }

.budgetic-resource-hub article,
.budgetic-editorial article { padding: 0; }

.budgetic-resource-hub .entry-header,
.budgetic-editorial .entry-header {
  max-width: 920px;
  margin: 0;
  padding: 88px 0 28px;
  animation: budgetic-rise .55s ease both;
}

.budgetic-resource-hub .entry-title,
.budgetic-editorial .entry-title {
  margin: 0;
  color: var(--budgetic-ink);
  font-size: clamp(38px, 5vw, 64px);
  font-weight: 680;
  letter-spacing: -.045em;
  line-height: 1.06;
  text-wrap: balance;
}

.budgetic-resource-hub .entry-content,
.budgetic-editorial .entry-content {
  margin: 0;
  animation: budgetic-rise .55s .08s ease both;
}

.budgetic-kicker,
.budgetic-article-meta {
  color: var(--budgetic-accent-dark);
  font-size: 12px !important;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

/* Resource index: category rail + calm editorial list */
.budgetic-resource-intro {
  max-width: 720px;
  margin: 0 0 76px !important;
  color: var(--budgetic-muted);
  font-size: clamp(18px, 2vw, 21px);
  line-height: 1.65;
}

.budgetic-resource-section {
  display: grid;
  grid-template-columns: minmax(210px, .7fr) minmax(0, 1.8fr);
  gap: 56px;
  padding: 54px 0;
  border-top: 1px solid var(--budgetic-line);
}

.budgetic-resource-section__head h2 {
  margin: 10px 0 0;
  color: var(--budgetic-ink);
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 650;
  letter-spacing: -.035em;
  line-height: 1.15;
  text-wrap: balance;
}

.budgetic-resource-list { border-top: 1px solid var(--budgetic-line); }

.budgetic-resource-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  gap: 22px;
  align-items: center;
  padding: 24px 0;
  border-bottom: 1px solid var(--budgetic-line);
  color: var(--budgetic-ink);
  text-decoration: none !important;
}

.budgetic-resource-link__title {
  display: block;
  margin-bottom: 7px;
  font-size: clamp(19px, 2vw, 24px);
  font-weight: 630;
  letter-spacing: -.025em;
  line-height: 1.3;
  transition: color .18s ease;
}

.budgetic-resource-link__desc {
  display: block;
  max-width: 680px;
  color: var(--budgetic-muted);
  font-size: 15px;
  line-height: 1.65;
}

.budgetic-resource-link__arrow {
  color: var(--budgetic-accent);
  font-size: 24px;
  transition: transform .18s ease;
}

.budgetic-resource-link:hover .budgetic-resource-link__title { color: var(--budgetic-accent-dark); }
.budgetic-resource-link:hover .budgetic-resource-link__arrow { transform: translateX(6px); }

.budgetic-resource-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin: 54px 0 92px;
  padding: 38px 42px;
  border-radius: 18px;
  background: var(--budgetic-ink);
  color: #fff;
}

.budgetic-resource-cta strong {
  display: block;
  margin-bottom: 6px;
  font-size: clamp(22px, 3vw, 30px);
  letter-spacing: -.03em;
}

.budgetic-resource-cta p { margin: 0; color: rgba(255,255,255,.76); }

.budgetic-resource-cta a {
  flex: 0 0 auto;
  padding: 13px 20px;
  border-radius: 9px;
  background: #fff;
  color: var(--budgetic-ink);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none !important;
  transition: transform .18s ease;
}

.budgetic-resource-cta a:hover { transform: translateY(-2px); }

/* Long-form guides */
.budgetic-editorial .entry-header { max-width: 960px; padding-bottom: 22px; }

.budgetic-editorial .entry-content {
  max-width: 780px;
  padding-bottom: 96px;
  color: #25334a;
  font-size: 18px;
  line-height: 1.78;
}

.budgetic-article-meta {
  display: flex;
  gap: 9px;
  margin: 0 0 32px !important;
}

.budgetic-article-lead {
  margin-bottom: 40px;
  color: var(--budgetic-ink);
  font-size: clamp(20px, 2.2vw, 24px);
  line-height: 1.62;
  letter-spacing: -.018em;
}

.budgetic-article-lead p { margin-bottom: 20px; }

.budgetic-article-toc {
  margin: 44px 0 68px;
  padding: 30px 34px 28px;
  border-left: 3px solid var(--budgetic-accent);
  background: var(--budgetic-soft);
}

.budgetic-article-toc .budgetic-kicker { margin: 0 0 18px; }
.budgetic-article-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; }

.budgetic-article-toc li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
  margin: 10px 0;
  counter-increment: toc;
}

.budgetic-article-toc li::before {
  color: var(--budgetic-accent);
  content: counter(toc, decimal-leading-zero);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
}

.budgetic-article-toc a {
  color: var(--budgetic-ink);
  font-size: 15px;
  font-weight: 560;
  line-height: 1.45;
  text-decoration: none !important;
}

.budgetic-article-toc a:hover { color: var(--budgetic-accent-dark); }

.budgetic-editorial .entry-content h2 {
  margin: 78px 0 24px;
  color: var(--budgetic-ink);
  font-size: clamp(30px, 3.4vw, 42px);
  font-weight: 660;
  letter-spacing: -.04em;
  line-height: 1.16;
  scroll-margin-top: 110px;
  text-wrap: balance;
}

.budgetic-editorial .entry-content h3 {
  margin: 42px 0 16px;
  color: var(--budgetic-ink);
  font-size: clamp(22px, 2.3vw, 27px);
  font-weight: 640;
  letter-spacing: -.028em;
  line-height: 1.3;
  text-wrap: balance;
}

.budgetic-editorial .entry-content p { margin-bottom: 24px; }
.budgetic-editorial .entry-content ul,
.budgetic-editorial .entry-content ol { margin: 0 0 30px 1.25em; }
.budgetic-editorial .entry-content li { margin-bottom: 10px; padding-left: 5px; }
.budgetic-editorial .entry-content strong { color: var(--budgetic-ink); font-weight: 670; }

.budgetic-editorial .entry-content a {
  color: var(--budgetic-accent-dark);
  text-decoration-color: rgba(22, 117, 101, .45);
  text-decoration-thickness: 1px;
}

.budgetic-editorial .entry-content table {
  width: 100%;
  margin: 36px 0 44px;
  border: 0;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 1.55;
}

.budgetic-editorial .entry-content th {
  padding: 14px 16px;
  border: 0;
  border-bottom: 2px solid var(--budgetic-ink);
  background: transparent;
  color: var(--budgetic-ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-align: left;
  text-transform: uppercase;
}

.budgetic-editorial .entry-content td {
  padding: 16px;
  border: 0;
  border-bottom: 1px solid var(--budgetic-line);
  vertical-align: top;
}

@keyframes budgetic-rise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 782px) {
  .ast-primary-header-bar { min-height: 66px; }
  .budgetic-resource-hub .ast-container,
  .budgetic-editorial .ast-container { width: min(100% - 36px, 1180px); }
  .budgetic-resource-hub .entry-header,
  .budgetic-editorial .entry-header { padding-top: 58px; }
  .budgetic-resource-section { grid-template-columns: 1fr; gap: 28px; padding: 44px 0; }
  .budgetic-resource-intro { margin-bottom: 48px !important; }
  .budgetic-resource-cta { align-items: flex-start; flex-direction: column; padding: 30px 26px; }
  .budgetic-editorial .entry-content { font-size: 17px; line-height: 1.72; }
  .budgetic-article-toc { margin: 36px 0 52px; padding: 26px 22px; }
  .budgetic-editorial .entry-content h2 { margin-top: 60px; }
  .budgetic-editorial .entry-content table { display: block; max-width: calc(100vw - 36px) !important; overflow-x: auto; table-layout: auto; }
  .budgetic-editorial .entry-content th,
  .budgetic-editorial .entry-content td { min-width: 132px; overflow-wrap: normal; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Pillar and product pages */
.budgetic-landing { background: var(--budgetic-paper); }
.budgetic-landing .ast-container {
  width: min(100% - 48px, 1120px);
  max-width: none;
  padding: 0;
}
.budgetic-landing .site-main,
.budgetic-landing article { padding: 0; }
.budgetic-landing .entry-header {
  max-width: 900px;
  margin: 0;
  padding: 82px 0 26px;
}
.budgetic-landing .entry-title {
  margin: 0;
  color: var(--budgetic-ink);
  font-size: clamp(38px, 5vw, 62px);
  font-weight: 680;
  letter-spacing: -.045em;
  line-height: 1.06;
  text-wrap: balance;
}
.budgetic-landing .entry-content {
  max-width: 980px;
  padding-bottom: 96px;
  color: #25334a;
  font-size: 18px;
  line-height: 1.72;
}
.budgetic-landing .entry-content > p:first-child {
  max-width: 820px;
  color: var(--budgetic-ink);
  font-size: clamp(21px, 2.3vw, 26px);
  line-height: 1.55;
}
.budgetic-landing .entry-content h2 {
  margin: 70px 0 22px;
  color: var(--budgetic-ink);
  font-size: clamp(29px, 3.2vw, 40px);
  font-weight: 660;
  letter-spacing: -.035em;
  line-height: 1.17;
}
.budgetic-landing .entry-content h3 {
  margin: 30px 0 12px;
  color: var(--budgetic-ink);
  font-size: 23px;
  font-weight: 640;
}
.budgetic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 34px 0 44px;
}
.budgetic-card {
  padding: 28px;
  border: 1px solid var(--budgetic-line);
  border-radius: 16px;
  background: #fff;
}
.budgetic-card h3 { margin-top: 0 !important; }
.budgetic-card p:last-child { margin-bottom: 0; }
.budgetic-callout,
.budgetic-product-note {
  margin: 40px 0;
  padding: 28px 32px;
  border-left: 4px solid var(--budgetic-accent);
  border-radius: 0 14px 14px 0;
  background: var(--budgetic-soft);
}
.budgetic-product-note {
  border: 0;
  border-radius: 16px;
  background: var(--budgetic-ink);
  color: #fff;
}
.budgetic-product-note strong,
.budgetic-product-note a { color: #fff !important; }
.budgetic-product-note a { font-weight: 700; }
.budgetic-figure { margin: 40px 0 48px; }
.budgetic-figure img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--budgetic-line);
  border-radius: 16px;
}
.budgetic-figure figcaption {
  margin-top: 12px;
  color: var(--budgetic-muted);
  font-size: 14px;
  line-height: 1.5;
}
.budgetic-sources,
.budgetic-faq { margin-top: 72px; }
.budgetic-editorial-note {
  margin-top: 54px;
  padding-top: 24px;
  border-top: 1px solid var(--budgetic-line);
  color: var(--budgetic-muted);
  font-size: 14px;
  line-height: 1.6;
}
.budgetic-editorial-note p { margin-bottom: 8px !important; }
.budgetic-faq details {
  padding: 20px 0;
  border-bottom: 1px solid var(--budgetic-line);
}
.budgetic-faq summary {
  color: var(--budgetic-ink);
  cursor: pointer;
  font-weight: 650;
}
.budgetic-faq details p { margin: 14px 0 0 !important; }

@media (max-width: 782px) {
  .budgetic-landing .ast-container { width: min(100% - 36px, 1120px); }
  .budgetic-landing .entry-header { padding-top: 56px; }
  .budgetic-grid { grid-template-columns: 1fr; }
  .budgetic-card { padding: 24px; }
}
