:root{--green:#00854f;--deep-green:#00582e;--orange:#ef7622;--ink:#28364a;--text:#363434;--muted:#716f6f;--gray-60:#8f8c8c;--line:#e6e5e5;--line-strong:#cecbcb;--soft:#f7f6f6;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--text);font:400 14px/1.5 Poppins,Arial,sans-serif}button,input{font:inherit}.hidden{display:none!important}.site-header{height:96px;border-bottom:1px solid var(--line);background:#fff}.header-inner{max-width:1140px;height:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.logo{width:106px;height:auto;display:block}.site-header nav{display:flex;align-items:center;gap:32px;margin-left:auto;margin-right:34px}.site-header nav a{color:var(--deep-green);font-size:12px;text-decoration:none}.orange-button{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 22px;border-radius:40px;background:var(--orange);color:#fff;font-size:12px;text-decoration:none}.page{max-width:1140px;margin:0 auto;display:grid;grid-template-columns:462px 558px;gap:120px;align-items:start;padding:64px 0 72px}.intro-block h1{margin:0 0 24px;color:var(--deep-green);font-size:40px;font-weight:400;line-height:1.28;letter-spacing:-.8px}.intro-block p{margin:0 0 20px;color:var(--ink);font-size:14px;line-height:1.6}.step-switch{width:100%;height:48px;margin:30px 0 32px;border:1px solid var(--line);border-radius:40px;padding:4px;display:grid;grid-template-columns:1fr 1fr;gap:4px}.step{border:0;border-radius:40px;background:transparent;color:var(--gray-60);font-size:12px;cursor:pointer}.step span{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:var(--line);color:#fff;font-size:10px}.step.active{background:var(--green);color:#fff}.step.active span{background:#fff;color:var(--green)}.step:disabled{cursor:default}.form-section{padding:36px 0;border-top:1px solid var(--line)}.form-section.first{border-top:0;padding-top:0}.form-section.last{padding-bottom:36px}.form-section h2,.result-title{margin:0 0 8px;color:var(--green);font-size:18px;font-weight:400;line-height:1.3}.helper{margin:0 0 24px;color:var(--ink);font-size:12px;line-height:1.6}.plan-options{display:grid;gap:12px}.choice-card,.invalidity-choice{min-height:72px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:flex-start;gap:12px;cursor:pointer}.choice-card input,.invalidity-choice input{position:absolute;opacity:0;pointer-events:none}.choice-dot{width:20px;height:20px;flex:0 0 20px;margin-top:1px;border:1px solid var(--line-strong);border-radius:50%;position:relative}.choice-card.selected{border:2px solid var(--green);padding:13px 15px}.choice-card.selected .choice-dot,.invalidity-choice input:checked+.choice-dot{border:6px solid var(--green)}.choice-card strong{display:block;color:var(--ink);font-size:13px;font-weight:500}.choice-card small{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.5}.dependent-card{margin:18px 0 16px;padding:20px;border:1px solid var(--line);border-radius:16px}.dependent-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.dependent-head h3,.stage-head h4{margin:0;color:var(--green);font-size:15px;font-weight:400}.remove-link{border:0;padding:0;background:none;color:#a04949;font-size:11px;cursor:pointer}.dependent-name{display:block;margin-bottom:16px}.dependent-name span,.stage-field>span{display:block;margin-bottom:8px;color:var(--text);font-size:11px;font-weight:500}.dependent-name input{height:44px}.stage-card{margin-top:14px;padding:16px;border-radius:12px;background:var(--soft)}.stage-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.stage-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stage-field{font-size:11px}.add-stage-button{width:100%;height:36px;margin-top:14px}.add-box{min-height:150px;padding:24px;border:1px dashed var(--line-strong);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.add-box p{margin:0;color:var(--muted);font-size:12px}.outline-button,.primary-button{height:40px;border-radius:40px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;font-size:12px;font-weight:500}.outline-button{border:1px solid var(--line);background:#fff;color:var(--deep-green)}.outline-button.full{width:100%}.primary-button{border:0;background:var(--green);color:#fff}.plus{font-size:17px;line-height:1}.invalidity-choice{min-height:56px;align-items:center;padding:16px;color:var(--ink);font-size:12px}.invalidity-choice .choice-dot{margin-top:0}.conditional{margin-top:16px}.form-rows{display:flex;flex-direction:column;gap:18px}.form-rows>label{display:grid;grid-template-columns:246px 170px;gap:46px;align-items:center;font-size:12px;font-weight:500}.info{display:inline-grid;place-items:center;width:14px;height:14px;margin-left:4px;border-radius:50%;background:var(--green);color:#fff;font-style:normal;font-size:9px}.input-shell{height:48px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;overflow:hidden;background:#fff}.input-shell:focus-within{border-color:var(--green);box-shadow:0 0 0 3px rgba(0,133,79,.08)}.input-shell b{flex:0 0 auto;color:var(--gray-60);font-size:12px;font-weight:500}.input-shell.prefix b{padding-left:12px}.input-shell.suffix b{padding-right:12px}.input-shell input,.dependent-name input,.stage-field input{min-width:0;width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);outline:0;padding:0 12px}.input-shell input{height:46px;border:0}.warning-box{display:flex;gap:12px;padding:16px;margin:0 0 32px;border-radius:24px;background:var(--soft)}.warning-box>img{width:24px;height:24px;flex:0 0 24px}.warning-box p{margin:0;color:var(--ink);font-size:12px;line-height:1.7}.warning-box strong{font-weight:600}.form-actions{display:grid;grid-template-columns:170px 267px;gap:24px}.form-actions>*{height:48px}.reset-button img,.result-actions img{width:18px;height:18px}.right-column{position:relative;align-self:stretch}.visual-card{position:sticky;top:30px;width:558px;border-radius:24px;overflow:hidden}.hero-image{display:block;width:558px;height:370px;object-fit:cover}.benefit-notes{min-height:210px;padding:32px;background:var(--green);display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.benefit-notes>div{display:flex;flex-direction:column;gap:19px}.icon-box{width:40px;height:40px;border-radius:13px;background:#fff;display:grid;place-items:center}.icon-box img{width:23px;height:23px}.benefit-notes p{margin:0;color:#fff;font-size:12px;line-height:1.6}.result-view>.helper{margin-bottom:24px}.result-title{font-size:20px}.plan-result,.scenario-card,.chart-card{margin-bottom:20px;padding:20px;border:1px solid var(--line);border-radius:16px}.plan-result h3,.scenario-card h3,.chart-card h3{margin:0 0 8px;color:var(--text);font-size:16px;font-weight:400}.plan-result p,.scenario-card>.scenario-note,.chart-card>p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.scenario-table{width:100%;margin-top:16px;border-collapse:collapse}.scenario-table td{padding:14px 8px;border-bottom:1px solid var(--line);font-size:11px}.scenario-table td:last-child{text-align:right;font-weight:600}.scenario-table tr.coverage td{border:0;border-radius:8px;background:var(--soft);color:var(--green);font-weight:600}.bands{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px}.band-row{display:flex;justify-content:space-between;padding:5px 0;font-size:10px}.band-row span:first-child small{color:var(--muted)}.chart-card canvas{width:100%;height:auto;margin-top:14px}.result-actions{display:grid;grid-template-columns:170px 267px;gap:24px}.result-actions>*{height:48px}footer{position:relative;border-top:1px solid var(--line);background:var(--soft);padding:64px 0}.footer-inner{max-width:1140px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.footer-inner p{margin:0;color:var(--ink);font-size:11px}.footer-inner p span{display:inline-block;height:18px;margin:0 8px;border-left:1px solid var(--line-strong);vertical-align:middle}.footer-inner a{color:var(--ink);font-weight:600}.footer-inner img{width:84px;height:33px}.back-top{position:absolute;top:-24px;right:max(calc((100vw - 1140px)/2),24px);width:48px;height:48px;border-radius:50%;background:var(--green);display:grid;place-items:center}.back-top img{width:18px;height:18px}@media(max-width:1100px){.header-inner,.page,.footer-inner{width:calc(100% - 48px)}.page{grid-template-columns:minmax(0,462px) minmax(380px,558px);gap:50px}.visual-card,.hero-image{width:100%}.form-rows>label{grid-template-columns:minmax(190px,246px) 170px;gap:24px}}@media(max-width:820px){.site-header{height:76px}.site-header nav{display:none}.header-inner{width:calc(100% - 32px)}.logo{width:92px}.orange-button{height:36px;padding:0 16px;font-size:10px}.page{width:calc(100% - 32px);display:flex;flex-direction:column;padding:36px 0 48px}.left-column{width:100%}.right-column{order:-1;width:100%}.visual-card{position:static}.hero-image{height:auto;aspect-ratio:558/370}.benefit-notes{min-height:0;padding:24px}.intro-block{margin-top:28px}.intro-block h1{font-size:32px}.form-rows>label{grid-template-columns:1fr;gap:8px}.input-shell{width:100%}.form-actions,.result-actions{grid-template-columns:1fr 1.5fr;gap:12px}.stage-fields{grid-template-columns:1fr}.footer-inner{width:calc(100% - 32px);gap:24px;align-items:flex-start}.footer-inner p span{display:none}.footer-inner p{max-width:230px;line-height:1.8}}@media print{.site-header,.right-column,footer,.step-switch,.result-actions{display:none!important}.page{display:block;width:100%;max-width:none;padding:0}.left-column{width:100%}#coverageForm,.intro-block{display:none!important}.result-view{display:block!important}}

/* Ajustes exclusivos da Calculadora de Cobertura Adicional.
 * Breakpoints e escala tipográfica herdados da calculadora FAPES de referência. */
body{font-size:16px;line-height:1.5}.header-inner,.page,.footer-inner{width:100%;max-width:none;margin-right:auto;margin-left:auto;padding-right:24px;padding-left:24px}.page{display:flex;flex-direction:column;gap:0;padding-top:28px;padding-bottom:40px}.left-column,.right-column{width:100%}.intro-block h1{margin-bottom:16px;font-size:32px;line-height:1.4;letter-spacing:0}.intro-block p{font-size:16px;line-height:1.6}.orange-button{font-size:14px}.step,.outline-button,.primary-button{font-size:14px}.form-section h2,.result-title{font-size:16px;line-height:1}.helper{font-size:14px;line-height:1.6}.choice-card strong{font-size:14px}.choice-card small{font-size:12px;line-height:1.6}.dependent-head h3,.stage-head h4{font-size:16px}.remove-link{font-size:12px}.dependent-name span,.stage-field>span,.form-rows>label{font-size:14px}.add-box p,.invalidity-choice{font-size:14px}.input-shell b{font-size:14px}.warning-box p{font-size:14px;line-height:1.7}.plan-result p,.scenario-card>.scenario-note,.chart-card>p,.scenario-table td,.band-row{font-size:12px}.footer-inner p{font-size:14px}.visual-card,.hero-image{width:100%}.right-column{order:-1}.visual-card{position:static}.hero-image{height:auto;aspect-ratio:558/370}.intro-block{margin-top:32px}.form-rows>label{grid-template-columns:1fr;gap:8px}.stage-fields{grid-template-columns:1fr}.site-header nav{display:none}.site-header{height:72px}.logo{width:auto;height:40px}.benefit-notes{min-height:0;padding:24px}.form-actions,.result-actions{grid-template-columns:1fr 1.5fr;gap:12px}.footer-inner{gap:24px;align-items:flex-start}.footer-inner p{max-width:250px;line-height:1.8}.footer-inner p span{display:none}

@media(min-width:576px){.header-inner,.page,.footer-inner{max-width:540px}}
@media(min-width:768px){.header-inner,.page,.footer-inner{max-width:720px;padding-right:12px;padding-left:12px}.intro-block{margin-top:0}.footer-inner p{max-width:none}.footer-inner p span{display:inline-block}}
@media(min-width:992px){.header-inner,.page,.footer-inner{max-width:960px}.page{display:grid;grid-template-columns:calc(50% - 12px) calc(50% - 12px);gap:24px;padding-top:64px;padding-bottom:84px}.left-column,.right-column{width:auto}.right-column{order:initial}.visual-card{position:sticky;top:30px}.intro-block h1{font-size:48px}.form-section h2,.result-title{font-size:18px}.stage-fields{grid-template-columns:1fr 1fr}.form-rows>label{grid-template-columns:minmax(190px,1fr) 170px;gap:24px}.form-actions,.result-actions{grid-template-columns:170px minmax(0,267px);gap:24px}.benefit-notes{padding:32px}.footer-inner{align-items:center}.site-header nav{display:flex;gap:18px;margin-right:24px}}
@media(min-width:1200px){.header-inner,.page,.footer-inner{max-width:1140px}.site-header nav{gap:32px;margin-right:34px}.form-rows>label{grid-template-columns:246px 170px;gap:46px}}
@media(min-width:1400px){.header-inner,.page,.footer-inner{max-width:1320px}.left-column{padding-right:80px}.back-top{right:max(calc((100vw - 1320px)/2),24px)}}

/* Dimensões dos ícones conforme os componentes do Figma. */
.step {
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}
.step-number{display:block;width:20px;height:20px;padding:1.875px;flex:0 0 20px}
.choice-dot{width:20px;height:20px;flex-basis:20px}
.plus-icon{display:block;width:18px;height:18px;flex:0 0 18px}
.info-icon{display:block;width:16px;height:16px}
.warning-box>img{width:24px;height:24px;flex-basis:24px}
.reset-button img,.result-actions img{display:block;width:18px;height:18px;flex:0 0 18px}
.icon-box{width:40px;height:40px;flex:0 0 40px}
.icon-box img{display:block;width:22.857px;height:22.857px}
.back-top{width:48px;height:48px}
.back-top img{display:block;width:18px;height:18px}
.footer-inner>img{width:84px;height:33px}

/* Estados das abas conforme o protótipo Figma. */
.step-switch {
  height: auto;
  min-height: 58px;
  padding: 8px;
  gap: 8px;
  border-radius: 32px;
  align-items: center;
}
.step {
  height: 40px;
  gap: 6px;
  padding: 0 24px;
  border: 1px solid #FFF;
  background: #FFF;
  font-size: 14px;
  font-weight: 500;
  line-height: normal;
}
#dataStep:not(.active) { gap: 4px; }
.step-result-wrap {
  position: relative;
  min-width: 0;
  height: 40px;
  display: flex;
  align-items: center;
}
.step-result-wrap .step {
  width: 100%;
}
#resultStep:disabled {
  color: #BDBABA;
}
.step-number-enabled,
.step-number-active { display: none; }
#resultStep:not(:disabled) {
  color: #716F6F;
}
#resultStep:not(:disabled) .step-number-disabled {
  display: none;
}
#resultStep:not(:disabled) .step-number-enabled {
  display: block;
}
#resultStep.active .step-number-enabled {
  display: none;
}
#resultStep.active .step-number-active {
  display: block;
}
#dataStep:not(.active) {
  color: #716F6F;
  background: #FFF;
}
#dataStep.active,
#resultStep.active {
  color: #FAFAFA;
  border-color: #00854F;
  background: #00854F;
}

/* Escala dos títulos de conteúdo da calculadora e dos resultados. */
h2.calculator-content-title,
h3.calculator-content-title {
  font-size: 20px;
}
.result-view .result-title {
  font-size: 24px;
}
@media (min-width: 1201px) {
  h2.calculator-content-title,
  h3.calculator-content-title {
    font-size: 24px;
  }
  .result-view .result-title {
    font-size: 32px;
  }
}

/* Tipografia interna dos boxes de resultado conforme o Figma. */
.plan-result p,
.scenario-card > .scenario-note,
.chart-card > p {
  font-size: 14px;
  line-height: normal;
}
.scenario-table td {
  font-size: 14px;
  font-weight: 500;
  line-height: 16px;
}
.scenario-table td:last-child {
  font-size: 18px;
  font-weight: 500;
  line-height: normal;
}
.scenario-table tr:nth-child(3) td {
  border-bottom: 0;
}
.scenario-table tr.coverage td {
  font-size: 14px;
  font-weight: 600;
  line-height: normal;
}
.scenario-table tr.coverage td:last-child {
  font-size: 20px;
}
.band-row {
  font-size: 14px;
  line-height: 16px;
}
.band-row span:first-child {
  font-weight: 500;
}
.band-row span:first-child small {
  font-size: 12px;
  font-weight: 400;
  line-height: normal;
}
.band-row strong {
  font-size: 14px;
  font-weight: 500;
}
.step-tooltip {
  position: absolute;
  z-index: 20;
  bottom: calc(100% + 12px);
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 237px;
  min-height: 25px;
  padding: 4px 8px;
  border-radius: 4px;
  background: rgba(39, 38, 38, .96);
  color: #FFF;
  font-size: 11px;
  font-weight: 400;
  line-height: normal;
  text-align: center;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 4px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.step-tooltip::after {
  position: absolute;
  bottom: -4px;
  left: 50%;
  width: 0;
  height: 0;
  border-top: 4px solid rgba(39, 38, 38, .96);
  border-right: 6px solid transparent;
  border-left: 6px solid transparent;
  content: "";
  transform: translateX(-50%);
}
.step-result-wrap:has(#resultStep:disabled):hover .step-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
@media (max-width: 575px) {
  .step-tooltip {
    width: min(237px, calc(100vw - 48px));
  }
}

/* Tooltips dos ícones de informação conforme o protótipo Figma. */
.tooltip-trigger {
  position: relative;
  z-index: 1;
  display: inline-flex;
  width: 16px;
  height: 16px;
  margin-left: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  vertical-align: -3px;
  cursor: help;
}
.tooltip-trigger:focus-visible {
  outline: 2px solid #00854F;
  outline-offset: 2px;
  border-radius: 50%;
}
.tooltip-bubble {
  position: absolute;
  z-index: 10;
  bottom: calc(100% + 8px);
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 25px;
  padding: 4px 8px;
  border-radius: 4px;
  background: rgba(39, 38, 38, .96);
  color: #FFF;
  font-family: Poppins, Arial, sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: normal;
  text-align: center;
  white-space: normal;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 4px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  width: max-content;
  max-width: 320px;
}
.tooltip-bubble::after {
  position: absolute;
  bottom: -4px;
  left: 50%;
  width: 0;
  height: 0;
  border-top: 4px solid rgba(39, 38, 38, .96);
  border-right: 6px solid transparent;
  border-left: 6px solid transparent;
  content: "";
  transform: translateX(-50%);
}
.tooltip-trigger:has(.info-icon:hover) .tooltip-bubble {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
.tooltip-bubble--pbb,
.tooltip-bubble--pension,
.tooltip-bubble--invalidity,
.tooltip-bubble--pbcd { min-height: 42px; }
@media (max-width: 575px) {
  .tooltip-bubble { max-width: calc(100vw - 32px); }
}

/* Checkbox oficial FAPES — regras extraídas de www.fapes.com.br.
 * Mantido nesta folha exclusiva do projeto; os CSSs de referência não são alterados. */
.form-check {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 0;
  position: relative;
}
.form-check::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 26px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: transparent;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.3s ease, background 0.3s ease;
  z-index: 1;
}
.form-check:hover:not(:has(input:disabled)):not(:has(input:checked))::after {
  background: #F7F6F6;
  transform: translate(-50%, -50%) scale(1);
}
.form-check:active:not(:has(input:disabled)):not(:has(input:checked))::after {
  background: #E6E5E5;
  transform: translate(-50%, -50%) scale(1);
}
.form-check:hover:has(input:checked):not(:has(input:disabled))::after {
  background: #E5F3ED;
  transform: translate(-50%, -50%) scale(1);
}
.form-check:active:has(input:checked):not(:has(input:disabled))::after {
  background: #CCE7DC;
  transform: translate(-50%, -50%) scale(1);
}
.form-check .form-check-label {
  color: #28364A;
  font-size: 14px;
  font-style: normal;
  font-weight: 500;
  line-height: 20px;
}
.form-check .form-check-input {
  border: 1px solid #E6E5E5;
  padding: 8px;
  border-radius: 6px;
  width: 20px;
  height: 20px;
  box-shadow: none;
  position: relative;
  z-index: 4;
}
.invalidity-choice.form-check .form-check-input {
  flex: 0 0 20px;
  margin: 0;
  opacity: 1;
  pointer-events: auto;
}
.form-check .form-check-input:focus {
  outline: none;
}
.form-check input:disabled + label {
  color: #BDBABA;
}
.form-check .form-check-input:checked {
  border: 1px solid #00854F;
  background-color: #00854F !important;
}
.form-check .form-check-input:checked:disabled {
  background-color: #E6E5E5 !important;
  border: 1px solid #E6E5E5;
}

/* Estado dos inputs conforme a calculadora FAPES de referência. */
.input-shell:focus-within,
.dependent-name input:focus {
  outline: none;
  border: 1px solid #BDBABA;
  box-shadow: 0 0 0 3px #F7F6F6;
}

/* Mantém prefixos e sufixos fixos também nos campos gerados por estágio. */
.stage-field > .input-shell {
  display: flex;
  margin-bottom: 0;
}

/* Ação de remoção conforme o componente do Figma. */
.remove-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 18px;
  padding: 0;
  border: 0;
  border-radius: 40px;
  background: transparent;
  color: #F04C25;
  font-size: 14px;
  font-weight: 500;
  line-height: normal;
  white-space: nowrap;
}
.remove-link img {
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}

/* Área de adição do primeiro nível da simulação de invalidez. */
.disability-add-box {
  margin-top: 24px;
}
.disability-add-box .outline-button {
  width: 320px;
  max-width: 100%;
}

/* Cards de plano e rádios conforme o componente do Figma. */
.choice-card {
  align-items: center;
  gap: 12px;
  padding: 16px;
}
.choice-card.selected {
  padding: 16px;
  border: 2px solid #00854F;
}
.choice-dot,
.choice-card.selected .choice-dot {
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin: 0;
  border: 0;
  border-radius: 0;
  position: static;
}
.choice-card strong {
  font-size: 14px;
  font-weight: 500;
}
.choice-card small {
  margin-top: 2px;
  color: #76777A;
  font-size: 12px;
  line-height: normal;
}

/* Estados de botões conforme o CSS público da FAPES. */
.primary-button,
.outline-button {
  transition: 0.3s ease;
}
.primary-button:hover:not(:disabled) {
  background-color: #339D72;
}
.primary-button:active:not(:disabled) {
  background-color: #003A1F;
}
.outline-button:hover:not(:disabled) {
  color: #FFF;
  background-color: #339D72;
  border-color: #339D72;
}
.outline-button:active:not(:disabled) {
  color: #FFF;
  background-color: #003A1F;
  border-color: #003A1F;
}
.outline-button:hover:not(:disabled) img,
.outline-button:active:not(:disabled) img {
  filter: brightness(0) invert(1);
}
.primary-button:disabled,
.primary-button.disabled {
  pointer-events: none;
  color: #ADA9A9;
  background-color: #E6E5E5;
  border-color: #E6E5E5;
}

/* Largura dos controles de adição. */
#addDependent,
#addDisabilityStage,
.add-stage-button {
  display: flex;
  width: 100%;
  max-width: 320px;
  margin-right: auto;
  margin-left: auto;
}

/* Modais de confirmação conforme os componentes do Figma. */
body.modal-open {
  overflow: hidden;
}
.confirmation-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(0, 0, 0, 0.72);
}
.confirmation-modal__dialog {
  width: min(533px, 100%);
  min-height: 384px;
  padding: 56px;
  border-radius: 32px;
  background: #FFF;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.confirmation-modal__icon {
  width: 56px;
  height: 56px;
  padding: 12px;
  border-radius: 18px;
  background: #00854F;
}
.confirmation-modal__icon img {
  display: block;
  width: 32px;
  height: 32px;
}
.confirmation-modal__content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.confirmation-modal__content h2,
.confirmation-modal__content p {
  margin: 0;
}
.confirmation-modal__content h2 {
  color: #00854F;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.4;
}
.confirmation-modal__content p {
  color: #28364A;
  font-size: 16px;
  line-height: 1.6;
}
.confirmation-modal__actions {
  display: flex;
  gap: 16px;
  margin-top: auto;
}
.confirmation-modal__actions > button {
  flex: 1 1 0;
  height: 48px;
  padding: 0 16px;
}
@media (max-width: 575px) {
  .confirmation-modal__dialog {
    min-height: 0;
    padding: 32px 24px;
    border-radius: 24px;
  }
  .confirmation-modal__actions {
    flex-direction: column-reverse;
  }
  .confirmation-modal__actions > button {
    flex: 0 0 48px;
    width: 100%;
  }
}

/* Banner responsivo: segue a posição da calculadora FAPES de referência. */
.hero-image-inline {
  display: block;
  width: 100%;
  height: 215px;
  border-radius: 24px;
  object-fit: cover;
}
@media (max-width: 991px) {
  .intro-block {
    margin-top: 0;
  }
  .intro-block p:last-of-type {
    margin-bottom: 32px;
  }
  .right-column {
    display: none;
  }
}
@media (min-width: 992px) {
  .hero-image-inline {
    display: none;
  }
}

/* Menu fixo e rótulo responsivo conforme a calculadora FAPES de referência. */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
}
.site-access-label--full {
  display: none;
}
.site-access-label--short {
  display: inline;
}
@media (min-width: 992px) {
  .site-access-label--full {
    display: inline;
  }
  .site-access-label--short {
    display: none;
  }
}

/* Espaçamento entre títulos e seus conteúdos. */
.form-section > .calculator-content-title,
.plan-result > .calculator-content-title,
.scenario-card > .calculator-content-title,
.chart-card > .calculator-content-title {
  margin-bottom: 24px;
}
.form-section > .calculator-content-title:has(+ .helper),
.plan-result > .calculator-content-title:has(+ p),
.scenario-card > .calculator-content-title:has(+ p),
.chart-card > .calculator-content-title:has(+ p) {
  margin-bottom: 8px;
}

.form-section > .calculator-content-title,
.plan-result > .calculator-content-title,
.scenario-card > .calculator-content-title,
.chart-card > .calculator-content-title {
  line-height: 120%;
}

/* Tooltips adaptativos: nunca ultrapassam os limites da viewport. */
.tooltip-bubble,
.step-tooltip {
  max-width: calc(100vw - 32px);
  box-sizing: border-box;
  display: none;
}
.tooltip-trigger:has(.info-icon:hover) .tooltip-bubble,
.tooltip-trigger:focus-visible .tooltip-bubble,
.step-result-wrap:has(#resultStep:disabled):hover .step-tooltip {
  display: flex;
}
.tooltip-trigger .tooltip-bubble[data-positioned="true"],
.step-tooltip[data-positioned="true"] {
  position: fixed;
  right: auto;
  bottom: auto;
  transform: none;
}
.tooltip-bubble[data-positioned="true"]::after,
.step-tooltip[data-positioned="true"]::after {
  left: var(--tooltip-arrow-left);
}
.tooltip-bubble[data-placement="bottom"]::after,
.step-tooltip[data-placement="bottom"]::after {
  top: -4px;
  bottom: auto;
  border-top: 0;
  border-bottom: 4px solid rgba(39, 38, 38, .96);
}
.tooltip-trigger:has(.info-icon:hover) .tooltip-bubble[data-positioned="true"],
.tooltip-trigger:focus-visible .tooltip-bubble[data-positioned="true"],
.step-result-wrap:has(#resultStep:disabled):hover .step-tooltip[data-positioned="true"] {
  transform: none;
}
.tooltip-trigger:focus-visible .tooltip-bubble {
  opacity: 1;
  visibility: visible;
}

/* Gráfico vetorial responsivo da simulação. */
.result-chart {
  width: 100%;
  min-height: 280px;
  margin-top: 24px;
}
.result-chart svg {
  display: block;
  width: 100%;
  height: clamp(280px, 55vw, 340px);
}
.result-chart__grid {
  stroke: #E6E5E5;
  stroke-width: 1;
}
.result-chart__axis,
.result-chart__legend,
.result-chart__label {
  font-family: Poppins, Arial, sans-serif;
}
.result-chart__axis {
  fill: #716F6F;
  font-size: 11px;
}
.result-chart__label {
  fill: #28364A;
  font-size: 14px;
  font-weight: 500;
}
.result-chart__legend {
  fill: #716F6F;
  font-size: 11px;
}
@media (max-width: 575px) {
  .result-chart {
    min-height: 300px;
  }
  .result-chart svg {
    height: 300px;
  }
  .result-chart__label {
    font-size: 12px;
  }
  .result-chart__legend {
    font-size: 10px;
  }
}

/* Evita que o card visual sticky fique sob o menu fixo no desktop. */
@media (min-width: 992px) {
  .visual-card {
    top: 95px;
  }
}

/* Ações do menu: variações de botão alinhadas ao site principal da FAPES. */
.header-actions {
  display: none;
}
.header-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 40px;
  min-height: 40px;
  padding: 0 26px;
  border: 2px solid transparent;
  border-radius: 40px;
  font-size: 14px;
  font-weight: 500;
  line-height: normal;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: .3s ease;
}
.header-button--outline {
  color: #00854F;
  border-color: #00854F;
  background: #fff;
}
.header-button--outline:hover {
  color: #fff;
  border-color: #339D72;
  background: #339D72;
}
.header-button--white {
  color: #00582E;
  border-color: #E6E5E5;
  background: #fff;
  white-space: nowrap;
}
.header-button--green {
  color: #fff;
  border-color: #00854F;
  background: #00854F;
}
.header-button--green:hover {
  color: #fff;
  border-color: #339D72;
  background: #339D72;
}
.header-button__icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}
.header-button__icon img {
  display: block;
  width: 100%;
  height: 100%;
}
.header-button__icon img:last-child {
  display: none;
}
.header-button--outline:hover .header-button__icon img:first-child,
.header-button--outline:active .header-button__icon img:first-child,
.mobile-return-button:hover .header-button__icon img:first-child,
.mobile-return-button:active .header-button__icon img:first-child {
  display: none;
}
.header-button--outline:hover .header-button__icon img:last-child,
.header-button--outline:active .header-button__icon img:last-child,
.mobile-return-button:hover .header-button__icon img:last-child,
.mobile-return-button:active .header-button__icon img:last-child {
  display: block;
}
.header-button--white:hover {
  color: #fff;
  border-color: #339D72;
  background: #339D72;
}
.header-button:active {
  color: #fff;
  border-color: #003A1F;
  background: #003A1F;
}
.header-site-button,
.mobile-return-button {
  display: inline-flex;
}
.mobile-return-button {
  height: 40px;
  min-height: 40px;
  margin-bottom: 22px;
  padding: 0 16px;
  border-width: 1px;
}
@media (max-width: 991px) {
  .desktop-title-break {
    display: none;
  }
  .page {
    padding-top: 32px;
  }
}
@media (min-width: 992px) {
  .header-actions {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .header-actions .header-button:first-child {
    width: 400px;
  }
  .header-actions .header-button:last-child {
    width: 185px;
  }
  .header-site-button,
  .mobile-return-button {
    display: none;
  }
}

.calculator-content-title-small {
    font-size: 18px;
    font-weight: 400;
    margin-top: 32px;
}

.input-info_apoio {  
  color: #545151;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 160%;
  margin: 0;           
}
