.forecast-page { display: flex; color: #172b3a; flex-direction: column; }
.forecast-hero { order: 1; }
.forecast-results { order: 2; }
.forecast-tool-card { order: 3; }
.forecast-how { order: 4; }
.forecast-official-note { order: 5; }
.forecast-scenarios { order: 6; }
.forecast-scenarios + .forecast-related { order: 7; }
.forecast-scenarios + .forecast-related + p { order: 8; }
.forecast-faq { order: 9; }
.forecast-links { order: 10; }

.forecast-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 1rem;
  padding: clamp(1.4rem, 4vw, 3rem);
  border-radius: 1.3rem;
  color: #fff;
  background: linear-gradient(135deg, #073b66 0%, #075f8f 54%, #087d68 100%);
  box-shadow: 0 1.1rem 2.8rem rgba(8, 55, 84, .2);
}

.forecast-hero::after {
  content: "%";
  position: absolute;
  right: 2%;
  bottom: -4rem;
  color: rgba(255,255,255,.07);
  font: 800 clamp(10rem, 23vw, 19rem)/1 Arial, sans-serif;
  pointer-events: none;
}

.forecast-hero h1 { position: relative; z-index: 1; max-width: 850px; margin-bottom: .7rem; font-weight: 800; }
.forecast-hero .lead { position: relative; z-index: 1; max-width: 760px; margin-bottom: 1.4rem; color: rgba(255,255,255,.9); }
.forecast-hero .breadcrumb-item, .forecast-hero .breadcrumb-item::before { color: rgba(255,255,255,.68); }
.forecast-hero .breadcrumb a { color: #fff; }
.forecast-eyebrow { display: block; margin-bottom: .35rem; color: #aaf2da; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.forecast-hero-kpis { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); max-width: 850px; border: 1px solid rgba(255,255,255,.18); border-radius: .9rem; background: rgba(3,30,49,.22); backdrop-filter: blur(5px); }
.forecast-hero-kpis > div { display: flex; min-width: 0; padding: .85rem 1rem; flex-direction: column; }
.forecast-hero-kpis > div + div { border-left: 1px solid rgba(255,255,255,.18); }
.forecast-hero-kpis span, .forecast-hero-kpis small { color: rgba(255,255,255,.7); }
.forecast-hero-kpis span { font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.forecast-hero-kpis strong { overflow: hidden; margin: .15rem 0; font-size: clamp(1.15rem, 2.4vw, 1.55rem); text-overflow: ellipsis; }

.forecast-tool-card { overflow: hidden; border-radius: 1rem; }
.forecast-tool-card .card-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; color: #fff; background: #0c4e70; }
.forecast-tool-card .card-header .small { color: #aaf2da; font-weight: 800; letter-spacing: .06em; }
.forecast-tool-card .form-control, .forecast-tool-card .form-select, .forecast-tool-card .input-group-text { min-height: 44px; }
.forecast-tool-form .form-label { min-height: 24px; margin-bottom: .5rem; }
.forecast-tool-form .form-text { min-height: 21px; margin-top: .35rem; }
.forecast-tool-submit { padding-top: 32px; }
.forecast-tool-submit .btn { min-height: 44px; }

.forecast-official-note { margin-top: 1.5rem; margin-bottom: 1.25rem; padding: 1rem 1.15rem; border: 1px solid #badde9; border-left: .35rem solid #0781a5; border-radius: .75rem; background: #edf9fc; }
.forecast-official-note h3 { margin-bottom: .4rem; font-size: 1.1rem; }
.forecast-official-note p { margin-bottom: .35rem; }

.forecast-method { overflow: hidden; border-radius: .9rem; }
.forecast-method summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; color: #0b4667; background: #eef5f8; font-weight: 800; list-style: none; }
.forecast-method summary::-webkit-details-marker { display: none; }
.forecast-method summary::after { content: "+"; display: grid; width: 1.8rem; height: 1.8rem; border-radius: 50%; place-items: center; color: #fff; background: #0b6d91; font-size: 1.2rem; }
.forecast-method[open] summary::after { content: "−"; }
.forecast-method summary small { margin-left: auto; color: #647782; font-weight: 500; }
.forecast-method ol { padding-left: 0; counter-reset: method; list-style: none; }
.forecast-method ol li { position: relative; padding-left: 2.65rem; counter-increment: method; }
.forecast-method ol li::before { content: counter(method); position: absolute; left: 0; display: grid; width: 1.85rem; height: 1.85rem; border-radius: 50%; place-items: center; color: #fff; background: #0b6d91; font-weight: 800; }
.forecast-method math { display: block; overflow-x: auto; padding: 1rem; border-radius: .65rem; background: #f5f8fa; }

.forecast-related { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.15rem; border: 1px solid #ded7fa; border-radius: .85rem; background: linear-gradient(135deg,#f7f4ff,#f1f8ff); }
.forecast-related > i { color: #6a4bc5; font-size: 1.6rem; }

.forecast-results, .forecast-how, .forecast-scenarios, .forecast-faq, .forecast-links { padding: clamp(1rem, 3vw, 1.6rem); border: 1px solid #dce5ea; border-radius: 1rem; background: #fff; box-shadow: 0 .45rem 1.4rem rgba(20,54,74,.07); }
.forecast-results { margin-bottom: 1.5rem; }
.forecast-results-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.forecast-results-heading h2 { margin-bottom: .5rem; font-size: clamp(1.35rem,3vw,1.8rem); }
.forecast-history-badge { flex: 0 0 auto; padding: .4rem .7rem; border-radius: 2rem; color: #075e7d; background: #e5f5fa; font-size: .78rem; font-weight: 800; }
.forecast-result-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; margin: 1.15rem 0; }
.forecast-result-grid article { display: flex; min-height: 125px; padding: 1rem; border: 1px solid #dce5ea; border-top: .3rem solid #177caf; border-radius: .75rem; flex-direction: column; background: #f9fbfc; }
.forecast-result-grid article > span { color: #5e707c; font-size: .77rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.forecast-result-grid article > strong { margin: auto 0 .25rem; color: #073e61; font-size: clamp(1.35rem,2.8vw,1.75rem); }
.forecast-result-grid article > small { color: #697983; }
.forecast-result-grid .forecast-result-featured { border-top-color: #078661; background: #effaf6; }
.forecast-result-grid .forecast-result-featured > strong { color: #067657; }
.forecast-disclaimer, .forecast-linking-note { display: flex; align-items: flex-start; gap: .7rem; margin-top: .65rem; padding: .85rem 1rem; border-radius: .65rem; font-size: .9rem; }
.forecast-disclaimer { color: #694f08; background: #fff8dd; }
.forecast-linking-note { color: #07506f; background: #eaf6fb; }
.forecast-disclaimer i, .forecast-linking-note i { margin-top: .1rem; font-size: 1.1rem; }

.forecast-how-steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin: 1rem 0; }
.forecast-how-steps article { display: flex; align-items: flex-start; gap: .75rem; padding: .85rem; border: 1px solid #dce5ea; border-radius: .7rem; background: #f8fafb; }
.forecast-how-steps article > span { display: grid; flex: 0 0 1.8rem; width: 1.8rem; height: 1.8rem; border-radius: 50%; place-items: center; color: #fff; background: #0b7398; font-weight: 800; }
.forecast-how-steps p { margin: .2rem 0 0; color: #62737e; font-size: .88rem; }
.forecast-formula { overflow-x: auto; padding: .9rem 1rem; border-left: .3rem solid #078661; border-radius: .5rem; color: #064d3a; background: #edf9f4; font-weight: 700; text-align: center; }

.forecast-table-wrap { border: 1px solid #d9e2e7; border-radius: .75rem; }
.forecast-table { min-width: 910px; font-size: .88rem; }
.forecast-table thead th { position: sticky; top: 0; padding: .75rem; border: 0; color: #fff; background: #0b4b6c; vertical-align: middle; }
.forecast-table thead small { color: rgba(255,255,255,.7); font-weight: 500; }
.forecast-table tbody td { padding: .65rem .75rem; border-color: #e4eaee; }
.forecast-table tbody tr:nth-child(even) td { background: #f5f8fa; }
.forecast-table tbody tr:hover td { background: #eaf5fa; }
.forecast-table .forecast-official-row td { background: #e8f8f1; font-weight: 600; }
.forecast-table .forecast-amount { color: #07654d; font-weight: 800; white-space: nowrap; }
.forecast-table code { color: #b02a37; font-size: .92em; }

.forecast-faq .accordion-button { font-weight: 700; }
.forecast-links-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; }
.forecast-links-grid > a { display: flex; align-items: flex-start; gap: .75rem; padding: 1rem; border: 1px solid #dae4e9; border-radius: .75rem; color: #173c52; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
.forecast-links-grid > a:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1rem rgba(15,59,83,.1); }
.forecast-links-grid i { color: #087aa2; font-size: 1.35rem; }
.forecast-links-grid span { display: flex; flex-direction: column; }
.forecast-links-grid small { margin-top: .25rem; color: #697983; }

@media (max-width: 767.98px) {
  .forecast-tool-submit { padding-top: 0; }
  .forecast-hero-kpis, .forecast-result-grid, .forecast-how-steps, .forecast-links-grid { grid-template-columns: 1fr; }
  .forecast-hero-kpis > div + div { border-top: 1px solid rgba(255,255,255,.18); border-left: 0; }
  .forecast-method summary { align-items: flex-start; }
  .forecast-method summary small { display: none; }
  .forecast-results-heading { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .forecast-links-grid > a { transition: none; }
}
