:root{
  --brand-a:#0019e9;
  --brand-b:#1c35ff;
  --brand-gradient: linear-gradient(45deg, var(--brand-a), var(--brand-b));

  --ink:#0b1220;
  --muted: rgba(11,18,32,.72);
  --muted2: rgba(11,18,32,.58);
  --line: rgba(11,18,32,.10);
  --bg:#ffffff;
  --soft:#f6f8ff;

  --r1: 12px;
  --r2: 16px;
  --r3: 22px;

  --sh1: 0 10px 26px rgba(11,18,32,.10);
  --sh2: 0 22px 60px rgba(11,18,32,.16);
}

html,body{
  font-family: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Helvetica Neue", "Noto Sans", "Liberation Sans", sans-serif;
  background: var(--bg);
  color: var(--ink);
  letter-spacing: 0;
}

/* Bootstrap alignment (avoid “template” look) */
body{ font-size: 18px; line-height: 1.7; }
a{ color: var(--brand-a); }

/* ====== Header ====== */
.c-header{
  position: sticky;
  top: 0;
  z-index: 1030;
  background: var(--brand-gradient);
  backdrop-filter: none;
  height: 67px;
}
.c-header--brand{
  color: rgba(255,255,255,.92);
}
.c-header__bar{
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);
}
.c-header__barRow{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 1rem;
  padding: .55rem 0;
}
.c-header__barLeft{
  display:flex;
  align-items:center;
  gap: .75rem;
  flex-wrap: wrap;
}
.c-header__barText{
  color: rgba(255,255,255,.78);
  font-size: .9rem;
}
.c-header__barLink{
  color: rgba(255,255,255,.92);
  text-decoration: none;
  font-weight: 700;
  border-bottom: 1px solid rgba(255,255,255,.35);
  padding-bottom: 2px;
}
.c-header__barLink:hover{ border-bottom-color: rgba(255,255,255,.65); }

.c-nav.navbar{
  /* Header com altura fixa */
  padding-top: 0;
  padding-bottom: 0;
  height: 67px;
  min-height: 67px;
  position: relative;
}
.c-nav.navbar > .container{
  height: 100%;
  align-items: center;
}
.c-nav__links .nav-link{
  color: rgba(255,255,255,.86) !important;
  font-weight: 600;
  padding-left: .9rem !important;
  padding-right: .9rem !important;
}
.c-nav__links .nav-link:hover{ color: rgba(255,255,255,.98) !important; }
.c-nav__toggler{ border-color: rgba(255,255,255,.45); }
/* Hambúrguer branco (3 traços) */
.c-header .navbar-toggler-icon{
  filter: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.c-brand{
  display:flex;
  align-items:center;
  gap:.55rem;
  text-decoration:none;
  color: inherit;
  position: relative;
  --logo-w: 160px;
  /* só a logo no header (sem texto) */
  padding-left: 0;
  min-height: 44px;
  min-width: var(--logo-w);
}
.c-brand__mark{
  /* Logo largo (sem “badge”) para reduzir altura do header */
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  border: 0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow: visible;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.c-brand__mark img{
  width: var(--logo-w);
  height: auto;
  object-fit: contain;
  display: block;
}

/* Compactar ações do header (reduz altura geral) */
.c-header .c-nav__ctas .c-btn{
  padding: .48rem .82rem;
  font-size: .95rem;
}
.c-nav__toggler{
  padding: .2rem .4rem;
}

@media (max-width: 991.98px){
  /* Em telas menores, esconder a tagline para ganhar altura */
  .c-brand__tag{ display:none; }
}

@media (max-width: 575.98px){
  .c-brand{
    --logo-w: 140px;
    padding-left: 0;
    min-width: var(--logo-w);
  }
  .c-brand__mark img{
    width: var(--logo-w);
    height: auto;
  }
}
.c-brand__text{ display:flex; flex-direction:column; line-height: 1.05; }
.c-brand__name{ font-weight: 800; letter-spacing: -0.02em; }
.c-brand__name{ color: rgba(255,255,255,.96); }
.c-brand__tag{ color: rgba(255,255,255,.74); font-size: .86rem; }
.c-header__rule{
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
}

/* ====== Mobile hamburger menu (accordion panel) ====== */
@media (max-width: 991.98px){
  /* O painel abre “para baixo” sem aumentar a altura fixa do header */
  .c-nav .navbar-collapse{
    position: absolute;
    top: 67px;
    left: 0;
    right: 0;
    padding: .75rem 0 1rem;
    background: var(--brand-gradient);
    border-top: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 18px 40px rgba(0,0,0,.22);
  }

  .c-mobileMenu__acc{ --bs-accordion-bg: transparent; }
  .c-mobileMenu__item{
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,.14);
  }
  .c-mobileMenu__btn{
    background: transparent;
    color: rgba(255,255,255,.96);
    font-weight: 800;
    padding: .9rem 0;
  }
  .c-mobileMenu__btn:focus{ box-shadow: none; }
  .c-mobileMenu__btn::after{ filter: invert(1) brightness(1.4); }

  .c-mobileMenu__body{
    padding: .2rem 0 1rem;
    display: grid;
    gap: .25rem;
  }
  .c-mobileMenu__link{
    display: block;
    padding: .7rem .9rem;
    border-radius: 14px;
    text-decoration: none;
    color: rgba(255,255,255,.92);
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    font-weight: 700;
  }
  .c-mobileMenu__link:hover{
    color: rgba(255,255,255,.98);
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.22);
  }
  .c-mobileMenu__link--cta{
    background: rgba(255,255,255,.92);
    color: rgba(0,25,233,.95);
    border-color: rgba(255,255,255,.92);
  }
  .c-mobileMenu__link--cta:hover{
    background: rgba(255,255,255,.86);
    color: rgba(0,25,233,.98);
  }

  /* "Solicitar abertura" dentro do menu mobile (CTA 3D verde/amarelo) */
  .c-mobileMenu__link--cta.c-btn--solicitar{
    /* herda o estilo do .c-btn--solicitar (quadrado, base amarela fina) */
    display: inline-flex;
    justify-content: center;
  }
  .c-mobileMenu__link--cta.c-btn--solicitar:hover{
    color: #fff;
  }
  .c-mobileMenu__link--cta.c-btn--solicitar:active{
    /* mantém efeito do botão */
  }
}

/* ====== Components ====== */
.c-dot{
  width: 10px; height: 10px; border-radius: 999px;
  background: var(--brand-gradient);
  display:inline-block;
}

.c-chip{
  display:inline-flex;
  align-items:center;
  padding: .25rem .6rem;
  border-radius: 999px;
  border: 1px solid rgba(11,18,32,.10);
  background: rgba(11,18,32,.03);
  font-weight: 700;
  font-size: .82rem;
}
.c-chip--inverted{
  border-color: rgba(255,255,255,.22);
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.92);
}

.c-btn{
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: -0.01em;
  padding: .72rem 1rem;
}
.c-btn--brand{
  background: var(--brand-gradient);
  border: 0;
  color: #fff;
  box-shadow: 0 14px 32px rgba(0,25,233,.22);
}
.c-btn--brand:hover{
  color:#fff;
  box-shadow: 0 18px 40px rgba(0,25,233,.28);
}
.c-btn--ghost{
  background: transparent;
  border: 1px solid rgba(255,255,255,.28);
  color: rgba(255,255,255,.92);
}
.c-btn--ghost:hover{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.40);
  color: rgba(255,255,255,.98);
}

/* CTA: Solicitar abertura (quadrado, 3D, verde com sombra amarela) */
.c-btn--solicitar{
  border-radius: 4px;
  background: linear-gradient(180deg, #138a3a 0%, #0e6c2d 100%);
  color: #fff;
  border: 1px solid rgba(0,0,0,.12);
  /* botão “flutuando” */
  box-shadow: 0 14px 26px rgba(0,0,0,.20);
  font-weight: 900;
  letter-spacing: -0.01em;
  position: relative;
  z-index: 0;
  /* mais “flutuação” */
  transform: translateY(-2px);
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease, filter .14s ease;
  text-decoration: none;
}
.c-btn--solicitar::after{
  /* contorno amarelo “L” separado do botão (gap de ar) */
  content:"";
  position:absolute;
  inset: 0;
  border-radius: 4px;
  z-index: -1;
  /* desloca o contorno sem “encolher” o elemento (cria ar embaixo e na lateral) */
  transform: translate(-7px, 12px);
  background:
    linear-gradient(#facc15,#facc15) left top / 3px 100% no-repeat,
    linear-gradient(#facc15,#facc15) left bottom / 100% 3px no-repeat;
  pointer-events: none;
}
.c-btn--solicitar:hover{
  color: #fff;
  filter: brightness(1.02);
  transform: translateY(-3px);
  box-shadow: 0 18px 32px rgba(0,0,0,.22);
}
.c-btn--solicitar:active{
  transform: translateY(0);
  box-shadow: 0 10px 18px rgba(0,0,0,.18);
}
.c-btn--solicitar:focus-visible{
  outline: 3px solid rgba(250,204,21,.55);
  outline-offset: 3px;
}

/* Largura do CTA em áreas do site (não afeta o header) */
.c-hero__actions .c-btn--solicitar,
.c-banner .c-btn--solicitar,
.c-footer__actions .c-btn--solicitar{
  width: 70%;
}

@media (max-width: 991.98px){
  .c-mobileMenu__link--cta.c-btn--solicitar{
    width: 80%;
    justify-content: center;
  }
}
@media (max-width: 575.98px){
  .c-hero__actions .c-btn--solicitar,
  .c-footer__actions .c-btn--solicitar{
    width: 80%;
    justify-content: center;
  }
  .c-ctaCenter .c-btn--solicitar{
    width: 100%;
  }
}

/* Header CTAs (invert for brand background) */
.c-header .c-btn--brand{
  background: rgba(255,255,255,.95);
  color: rgba(0,25,233,.92);
  box-shadow: 0 16px 34px rgba(0,0,0,.18);
}
.c-header .c-btn--brand:hover{
  background: rgba(255,255,255,.88);
  color: rgba(0,25,233,.96);
}

/* ====== Hero ====== */
.c-hero{
  background: var(--brand-gradient);
  padding-bottom: 1.1rem;
  position: relative;
  overflow: hidden;
  background-image: url("../../app/elegant-attractive-tender-feminine-african-american-young-woman-curly-haired-embracing-herself-showing-female-strong-soft-same-time-smiling-dreamy-cuddling-wear-collar-shirt-jeans-white-wall.jpg");
  background-size: cover;
  /* Prioriza o rosto (evita cortar a parte de cima em telas largas) */
  background-position: 85% 6%;
  background-repeat: no-repeat;
}

@media (max-width: 991.98px){
  /* Em telas menores, centraliza um pouco mais pra manter o rosto visível */
  .c-hero{ background-position: 70% 4%; }
}
.c-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      rgba(0,25,233,.94) 0%,
      rgba(0,25,233,.92) 46%,
      rgba(0,25,233,.35) 72%,
      rgba(0,25,233,0) 100%);
  pointer-events:none;
}
.c-hero .container{
  position: relative;
  z-index: 1;
}
.c-hero__eyebrow{
  display:flex;
  align-items:center;
  gap:.6rem;
  color: rgba(255,255,255,.86);
  font-weight: 700;
  font-size: .92rem;
}
.c-dot--inverted{
  background: rgba(255,255,255,.92);
}
.c-hero__title{
  margin-top: .9rem;
  margin-bottom: .9rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.08;
  font-size: clamp(2.05rem, 3.2vw, 3rem);
  color: rgba(255,255,255,.98);
}
.c-hero__rotate{
  display: inline-block;
  margin-left: 0;
  padding-left: 0;
  /* borda amarela leve */
  -webkit-text-stroke: .5px rgba(250,204,21,.22);
  /* fallback (Firefox): “contorno” via sombra */
  text-shadow:
    1px 0 rgba(250,204,21,.14),
    -1px 0 rgba(250,204,21,.14),
    0 1px rgba(250,204,21,.14),
    0 -1px rgba(250,204,21,.14);
  transition: opacity .22s ease, transform .22s ease;
  will-change: opacity, transform;
}
.c-hero__rotate.is-out{
  opacity: 0;
  transform: translateY(6px);
}
.c-hero__lead{
  color: rgba(255,255,255,.80);
  max-width: 70ch;
  font-size: 1.04rem;
}
.c-hero__actions{
  display:flex;
  gap: .75rem;
  flex-wrap: wrap;
  margin-top: 1.25rem;
}
.c-hero__fine{
  margin-top: .85rem;
  color: rgba(255,255,255,.72);
  font-size: .92rem;
}

.c-hero__content{
  max-width: 44rem;
}

.c-btn--hero{
  background: rgba(255,255,255,.96);
  color: rgba(0,25,233,.92);
  border: 0;
  box-shadow: 0 18px 46px rgba(0,0,0,.20);
}
.c-btn--hero:hover{
  background: rgba(255,255,255,.88);
  color: rgba(0,25,233,.96);
}

/* (Hero usa imagem de fundo; sem blocos extras) */

.c-panel{
  border-radius: var(--r3);
  border: 1px solid rgba(11,18,32,.10);
  background: #fff;
  box-shadow: var(--sh1);
  padding: 1.1rem 1.1rem;
}
.c-panel__head{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .9rem;
}
.c-panel__title{ font-weight: 900; }
.c-panel__sub{ color: var(--muted2); font-size: .92rem; margin-top: .1rem; }
.c-steps{ display:grid; gap: .8rem; margin: .6rem 0 1rem; }
.c-step{ display:flex; gap: .85rem; align-items:flex-start; }
.c-step__n{
  width: 44px;
  height: 34px;
  border-radius: 12px;
  border: 1px solid rgba(0,25,233,.18);
  background: rgba(0,25,233,.06);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  color: rgba(0,25,233,.92);
}
.c-step__t{ font-weight: 800; }
.c-step__d{ color: var(--muted2); font-size: .92rem; margin-top: .15rem; }
.c-panel__fine{ margin-top: .65rem; color: var(--muted2); font-size: .84rem; }

/* ====== Sections ====== */
.c-section{ background: #fff; }
.c-section--soft{ background: var(--soft); border-top: 1px solid rgba(11,18,32,.06); border-bottom: 1px solid rgba(11,18,32,.06); }
.c-section--brand{
  background: var(--brand-gradient);
  color: rgba(255,255,255,.92);
}
.c-section--brand .c-section__k{ color: rgba(255,255,255,.86); }
.c-section--brand .c-section__t{ color: rgba(255,255,255,.98); }
.c-section--brand .c-section__s{ color: rgba(255,255,255,.78); }
.c-section--brand .c-listItem{
  border-color: rgba(255,255,255,.20);
  background: rgba(255,255,255,.10);
}
.c-section--brand .c-listItem__v{ color: rgba(255,255,255,.74); }
.c-section--brand .c-card{
  border-color: rgba(255,255,255,.20);
  background: rgba(255,255,255,.12);
  box-shadow: 0 18px 50px rgba(0,0,0,.18);
}
.c-section--brand .c-card__s{ color: rgba(255,255,255,.78); }
.c-section--brand .c-card--accent{
  background: rgba(255,255,255,.10);
}
.c-section--brand .c-btn--brand{
  background: rgba(255,255,255,.95);
  color: rgba(0,25,233,.92);
  box-shadow: 0 16px 40px rgba(0,0,0,.18);
}
.c-section--brand .c-btn--brand:hover{
  background: rgba(255,255,255,.88);
  color: rgba(0,25,233,.96);
}
.c-section__head{ margin-bottom: 1.6rem; }
.c-section__head--tight{ margin-bottom: 1.1rem; }
.c-section__k{
  font-weight: 900;
  color: rgba(0,25,233,.90);
  letter-spacing: .10em;
  text-transform: uppercase;
  font-size: .74rem;
  margin-bottom: .55rem;
}
.c-section__t{ font-weight: 900; letter-spacing: -0.03em; }
.c-section__s{ color: var(--muted); max-width: 72ch; }

.c-flow__row{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.c-flowItem{
  border-radius: var(--r3);
  border: 1px solid rgba(11,18,32,.10);
  background: #fff;
  padding: 1.05rem 1.1rem;
  display:flex;
  gap: 1rem;
}
.c-flowItem__n{ font-weight: 900; color: rgba(0,25,233,.92); min-width: 44px; }
.c-flowItem__t{ font-weight: 900; }
.c-flowItem__d{ color: var(--muted2); margin-top: .15rem; }

.c-banner{
  margin-top: 1.2rem;
  border-radius: var(--r3);
  border: 1px solid rgba(0,25,233,.16);
  background: linear-gradient(135deg, rgba(0,25,233,.05), rgba(28,53,255,.03));
  padding: 1.1rem 1.1rem;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.c-banner__t{ font-weight: 900; }
.c-banner__s{ color: var(--muted2); }

/* CTA central (usado na seção de etapas) */
.c-ctaCenter{
  margin-top: 1.2rem;
  display: flex;
  justify-content: center;
}
.c-ctaCenter .c-btn--solicitar{
  width: 100%;
  /* mesmo padding dos cards das etapas */
  padding: 1rem 1rem 1.1rem;
  display: flex;
  justify-content: center;
}

/* ====== Processo (governamental) ====== */
.c-govSteps{
  list-style: none;
  padding: 0;
  margin: .75rem 0 .25rem;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6rem;
  --gov-line: rgba(0,25,233,.95);
  --gov-soft: rgba(0,25,233,.18);
}
.c-govSteps::before{
  content:"";
  position:absolute;
  left: 1.4rem;
  right: 1.4rem;
  top: 1.35rem;
  height: 4px;
  background: var(--gov-line); /* mesmo azul do header */
  opacity: .85;
}
.c-govStep{
  border-radius: 16px;
  border: 1px solid rgba(0,25,233,.14);
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 44px rgba(11,18,32,.12);
  padding: 1.05rem 1.05rem 1.15rem;
  position: relative;
  overflow: visible;
  isolation: isolate;
}
.c-govStep::before{
  /* borda flutuante (outline deslocado) */
  content:"";
  position:absolute;
  inset: 0;
  transform: translate(10px, 10px);
  border-radius: 16px;
  border: 2px solid rgba(0,25,233,.14);
  background: transparent;
  z-index: -1;
  pointer-events:none;
  opacity: .55;
}
.c-govStep::after{
  content:none; /* reservado para o "balão" no mobile */
}
.c-govStep__circle{
  width: 46px;
  height: 46px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  color: rgba(0,25,233,.95);
  background: #fff;
  border: 2px solid rgba(0,25,233,.22);
  box-shadow:
    0 12px 26px rgba(0,0,0,.10),
    0 0 0 6px rgba(0,25,233,.06);
  margin-bottom: .8rem;
}
.c-govStep__k{
  font-weight: 900;
  letter-spacing: -0.02em;
  margin-bottom: .2rem;
}
.c-govStep__v{
  color: rgba(11,18,32,.70);
  font-size: 1rem;
  line-height: 1.55;
}

@media (max-width: 991.98px){
  .c-govSteps{
    grid-template-columns: 1fr;
    --gutter: 3.25rem;
    padding-left: .2rem;
    gap: 2.1rem;
  }
  .c-govSteps::before{
    left: 1.55rem;
    right: auto;
    top: 24px;
    bottom: 24px;
    width: 3px;
    height: auto;
    background: var(--gov-line);
    opacity: .9;
  }
  .c-govStep{
    margin-left: var(--gutter);
    z-index: 0;
  }
  .c-govStep::before{
    transform: translate(8px, 8px);
    opacity: .26;
    border-width: 1px;
  }
  .c-govStep__circle{
    position: absolute;
    left: calc(var(--gutter) * -1);
    top: 1rem;
    margin-bottom: 0;
    z-index: 2;
  }
  .c-govStep::after{
    /* Conexão com losango por baixo do dot + card */
    content:"";
    position:absolute;
    left: -18px;
    top: 1.55rem;
    width: 22px;
    height: 22px;
    background: var(--soft);
    border: 1px solid rgba(0,25,233,.22);
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    z-index: -1;
    box-shadow: 0 14px 24px rgba(11,18,32,.10);
    opacity: .95;
    pointer-events:none;
  }
}

.c-list{
  display:grid;
  gap: .85rem;
}
.c-listItem{
  border-radius: var(--r3);
  border: 1px solid rgba(11,18,32,.10);
  background: rgba(255,255,255,.75);
  padding: 1.0rem 1.05rem;
}
.c-listItem__k{ font-weight: 900; }
.c-listItem__v{ color: var(--muted2); margin-top: .2rem; }

.c-card{
  border-radius: var(--r3);
  border: 1px solid rgba(11,18,32,.10);
  background: #fff;
  padding: 1.25rem 1.25rem;
  box-shadow: var(--sh1);
}
.c-card--accent{
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.82));
  border-color: rgba(0,25,233,.14);
}
.c-card__t{ font-weight: 900; font-size: 1.05rem; }
.c-card__s{ color: var(--muted); margin-top: .4rem; }
.c-card__a{ margin-top: 1rem; }

/* Accordion */
.c-accordion .accordion-item{
  border-radius: var(--r3) !important;
  border: 1px solid rgba(11,18,32,.10);
  overflow:hidden;
  background: rgba(255,255,255,.92);
  margin-bottom: .85rem;
}
.c-accordion .accordion-button{
  font-weight: 900;
  letter-spacing: -0.02em;
  padding: 1.05rem 1.1rem;
}
.c-accordion .accordion-button:not(.collapsed){
  background: rgba(0,25,233,.05);
  color: rgba(11,18,32,.95);
  box-shadow: none;
}
.c-accordion .accordion-body{ color: var(--muted); line-height: 1.65; }

/* Forms */
.form-control{
  border-radius: 14px;
  padding: .78rem .9rem;
  border-color: rgba(11,18,32,.14);
}
.form-control:focus{
  border-color: rgba(0,25,233,.35);
  box-shadow: 0 0 0 .25rem rgba(0,25,233,.10);
}
.form-select{
  border-radius: 14px;
  padding: .78rem .9rem;
  border-color: rgba(11,18,32,.14);
}
.form-select:focus{
  border-color: rgba(0,25,233,.35);
  box-shadow: 0 0 0 .25rem rgba(0,25,233,.10);
}

.c-appFlow .form-check-label{
  font-size: .92rem;
  line-height: 1.35;
  color: rgba(11,18,32,.78);
}

/* ====== App-like flow (forms) ====== */
.c-appFlow{
  background: var(--soft);
}

.c-wizard{
  display: grid;
  gap: 1rem;
}
.c-wizard__top{
  position: sticky;
  top: 79px; /* header (67) + gap */
  z-index: 5;
  /* sem box: só a timeline */
  background: var(--soft); /* igual ao background da página */
  border: 0;
  border-radius: 0;
  padding: .6rem 0;
  box-shadow: none;
  backdrop-filter: none;
}

.c-stepper{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
  position: relative;
}
.c-stepper::before{
  content:"";
  position:absolute;
  left: 1.15rem;
  right: 1.15rem;
  top: 1rem;
  height: 2px;
  background: rgba(11,18,32,.12);
}
.c-stepper__step{
  display:flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  text-align: center;
  position: relative;
  color: rgba(11,18,32,.65);
  font-weight: 800;
}
.c-stepper__dot{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: #fff;
  border: 2px solid rgba(11,18,32,.12);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  color: rgba(11,18,32,.75);
}
.c-stepper__label{
  font-size: .88rem;
}
.c-stepper__step.is-active{
  color: rgba(0,25,233,.95);
}
.c-stepper__step.is-active .c-stepper__dot{
  border-color: rgba(0,25,233,.35);
  color: rgba(0,25,233,.95);
}
.c-stepper__step.is-done{
  color: rgba(22,163,74,.92);
}
.c-stepper__step.is-done .c-stepper__dot{
  border-color: rgba(22,163,74,.35);
  color: rgba(22,163,74,.92);
}

.c-wizardNav{
  display:flex;
  gap: .75rem;
  align-items: center;
  margin-top: .75rem;
}
.c-wizardNav__back{
  border-color: rgba(11,18,32,.10);
  color: rgba(11,18,32,.75);
}
.c-wizardNav__next,
.c-wizardNav__submit{
  margin-left: auto;
}

@media (max-width: 575.98px){
  .c-wizard__top{ top: 73px; }
  .c-stepper__label{ font-size: .82rem; }
  .c-wizardNav{
    position: sticky;
    bottom: 0;
    background: rgba(246,248,255,.92);
    padding: .75rem 0 .2rem;
    backdrop-filter: blur(6px);
  }
  .c-wizardNav .c-btn{
    width: 100%;
    justify-content: center;
  }
  .c-wizardNav{
    flex-wrap: wrap;
  }
  .c-wizardNav__next,
  .c-wizardNav__submit{
    margin-left: 0;
  }
}

/* ====== Footer ====== */
.c-footer{
  border-top: 0;
  background: var(--brand-gradient);
  color: rgba(255,255,255,.92);
}
.c-footer a{ color: rgba(255,255,255,.88); }
.c-footer a:hover{ color: rgba(255,255,255,.98); }
.c-footer__grid{
  display:grid;
  grid-template-columns: 2.2fr 1fr 1fr 1.2fr;
  gap: 1.6rem;
}
.c-footerBrand{
  display:flex;
  align-items:center;
  gap: .85rem;
  margin-bottom: 1rem;
}
.c-footerBrand__mark{
  width: 46px; height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.c-footerBrand__mark img{ width: 34px; height: 34px; object-fit: contain; }
.c-footerBrand__name{ font-weight: 900; }
.c-footerBrand__tag{ color: rgba(255,255,255,.78); margin-top: .2rem; }
.c-footer__note{ color: rgba(255,255,255,.78); max-width: 70ch; }
.c-footer__actions{ display:flex; align-items:center; gap: 1rem; flex-wrap: wrap; margin-top: 1.1rem; }
.c-footer__adminLink{ color: rgba(255,255,255,.86); text-decoration:none; font-weight: 800; }
.c-footer__adminLink:hover{ color: rgba(255,255,255,.98); }
.c-footer__title{ font-weight: 900; margin-bottom: .8rem; }
.c-footer__list{ list-style:none; padding:0; margin:0; display:grid; gap: .55rem; }
.c-footer__list a{ color: rgba(255,255,255,.86); text-decoration:none; font-weight: 650; }
.c-footer__list a:hover{ color: rgba(255,255,255,.98); }
.c-footer__meta{ display:grid; gap: .75rem; }
.c-metaRow__k{
  font-weight: 900;
  color: rgba(255,255,255,.72);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.c-metaRow__v{ color: rgba(255,255,255,.86); font-weight: 600; margin-top: .2rem; }
.c-footer__bottom{
  margin-top: 1.8rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(255,255,255,.18);
  display:flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  color: rgba(255,255,255,.78);
  font-size: .92rem;
}
.c-footer__bottomMuted{ color: rgba(255,255,255,.70); }
.c-footer__sep{ margin: 0 .5rem; opacity: .8; }

.c-timeline{
  position: relative;
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  padding-top: .75rem;
  padding-bottom: .25rem;
}
.c-timeline::before{
  content:"";
  position:absolute;
  left: 1.2rem;
  right: 1.2rem;
  top: 2.1rem;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255,255,255,.95), #fbbf24, #22c55e, #2563eb);
  opacity: .95;
  transform-origin: left center;
  animation: tl-line 900ms ease-out both;
}
.c-timelineStep{
  position: relative;
  border-radius: var(--r3);
  border: 1px solid rgba(11,18,32,.10);
  background: #fff;
  padding: 1rem 1rem 1.1rem;
  box-shadow: var(--sh1);
  animation: tl-in 700ms ease-out both;
}
.c-timelineStep:nth-child(1){ animation-delay: 80ms; }
.c-timelineStep:nth-child(2){ animation-delay: 180ms; }
.c-timelineStep:nth-child(3){ animation-delay: 280ms; }
.c-timelineStep:nth-child(4){ animation-delay: 380ms; }

.c-timelineStep__dot{
  width: 44px;
  height: 44px;
  border-radius: 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom: .8rem;
  border: 1px solid rgba(11,18,32,.10);
  background: #fff;
  color: rgba(11,18,32,.88);
}
.c-ico{ width: 22px; height: 22px; }

.c-timelineStep__k{
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: .25rem;
}
.c-timelineStep__v{
  color: rgba(11,18,32,.70);
  font-size: 1rem;
}

.c-timelineStep--white .c-timelineStep__dot{
  background: #fff;
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
}
.c-timelineStep--yellow .c-timelineStep__dot{
  background: rgba(251,191,36,.18);
  border-color: rgba(251,191,36,.35);
  color: #a16207;
}
.c-timelineStep--green .c-timelineStep__dot{
  background: rgba(34,197,94,.16);
  border-color: rgba(34,197,94,.30);
  color: #166534;
}
.c-timelineStep--blue .c-timelineStep__dot{
  background: rgba(37,99,235,.14);
  border-color: rgba(37,99,235,.28);
  color: #1d4ed8;
}

@keyframes tl-in{
  from{ opacity: 0; transform: translateY(10px); }
  to{ opacity: 1; transform: translateY(0); }
}
@keyframes tl-line{
  from{ transform: scaleX(0); }
  to{ transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce){
  .c-timeline::before,
  .c-timelineStep{
    animation: none !important;
  }
}

/* Responsive */
@media (max-width: 991.98px){
  .c-timeline{
    grid-template-columns: 1fr;
  }
  .c-timeline::before{
    left: 2.1rem;
    right: auto;
    top: 1.2rem;
    bottom: 1.2rem;
    width: 3px;
    height: auto;
    background: linear-gradient(180deg, rgba(255,255,255,.95), #fbbf24, #22c55e, #2563eb);
    transform-origin: top center;
  }
  .c-footer__grid{ grid-template-columns: 1fr; }
}
