.px-0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.pl-0 {
    padding-left: 0 !important;
}

.pr-0 {
    padding-right: 0 !important;
}

.HomeTitle-h2 {
    text-align: center;
    margin-bottom: 60px;
    color: var(--Cinza-Mavip, #6B6F70);
    /* H2 */
    font-family: "bree";
    font-size: 56px;
    font-style: normal;
    font-weight: 400;
    line-height: 58px;
}

.HomeTitle-h2 span {
    color: var(--Roxo-Mavip, #9a5bb4);
}

.Button-CtaHome {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 32px 80px;
    border-radius: 8px;
    border: 2px solid var(--Branco-Mavip, #fff);
    background: var(--Roxo-Mavip-Boto-Normal, #bc58ff);
}

/* .Nav-overlay vive em ajustes.css (sitewide); aqui só herdamos o
   z-index:100 e mantemos o hack de margin-bottom específico do hero. */
.navbar-default {
    position: relative;
    z-index: 100;
    margin-bottom: 80px;
}

.Header--home {
    position: relative;
    overflow: hidden;
    min-height: 100vh;
    background: url("../images/hero-bg.jpg") no-repeat center center;
    background-size: cover;
}

/* No site real, .container tem position:relative (build.css) e vira o
   ancestral posicionado mais próximo, encolhendo o cálculo de largura de
   .Header-heroImages (61%) de 61% do header para 61% do container (~1440px).
   Isso faz o hero renderizar menor/mais cortado do que na montagem. Forçamos
   o container do hero a position:static para que a % volte a ser relativa
   ao header inteiro, como na montagem. */
.Header--home > .container {
    position: static;
}

.Header-heroImages {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 61%;
    overflow: hidden;
    pointer-events: none;
}

.Header-heroR {
    position: absolute;
    top: 0;
    left: 5%;
    transform: none;
    width: 72%;
    height: 100%;
    object-fit: fill;
    mix-blend-mode: plus-lighter;
    opacity: 0.86;
}

.Header-heroPerson {
    position: absolute;
    bottom: 0;
    width: auto;
}

.Header-heroPerson--left {
    left: 0;
}

.Header-heroPerson--right {
    left: 32.5%;
}

.Header--home .Header-title {
    color: var(--Branco-Mavip, #fff);
    /* H1 */
    font-size: 92px;
    font-style: normal;
    font-weight: 400;
    line-height: 93px;
    /* 101.087% */
}

.Header--home .Header-title span {
    color: var(--Laranja-Mavip, #ff751f);
}

.Header--home .Header-text {
    margin-bottom: 40px;
    color: var(--Branco-Mavip, #fff);
    /* H5 */
    font-family: "Bree Serif";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 24.29px;
    /* 134.944% */
}

.Header--home .Button-CtaHome {
    margin-bottom: 40px;
}

.Header--home .Header-cards {
    max-width: 480px;
}

.Header--home .Header-cards img {
    width: 42px;
    height: 42px;
    border-radius: 100%;
    border: 1px solid #d9d9d9;
}

.Header--home .Header-cards img:not(:first-child) {
    margin-left: -12px;
}

.Header--home .Header-cta {
    color: rgba(255, 255, 255, 0.7);
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 21px; /* 131.25% */
}

/* build.css tem uma regra antiga (design pré-reforma) só ativa em telas
   ≤374px: "@media(max-width:374px){section.Section.Section--homeSponsors
   {margin-top:60px}}". Ela tem especificidade maior (elemento "section" +
   2 classes) que a nossa e sobrevive mesmo com home.css carregando depois,
   criando um espaço em branco entre o hero e essa seção nesses tamanhos de
   tela. Igualamos o seletor (com "section" na frente) e zeramos a margem. */
section.Section.Section--homeSponsors {
    background: var(--Roxo-Mavip, #9a5bb4);
    margin-top: 0;
    padding-top: 16px;
    padding-bottom: 16px;
}

.Sponsors-img {
    display: block;
    width: 100%;
    max-width: 807px;
    margin: 0 auto;
    height: auto;
}

.Section--homeBlog {
    padding-top: 80px;
    padding-bottom: 80px;
    background: #ebeff0;
}

.Section--homeBlog .HomeTitle-h2 {
    margin-bottom: 40px;
}

.Blog-list {
    display: flex;
    gap: 32px;
    align-items: stretch;
    margin-bottom: 40px;
}

.Blog-card {
    flex: 1;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 24px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.Blog-cardImg {
    width: 100%;
    aspect-ratio: 385 / 216;
    overflow: hidden;
    flex-shrink: 0;
}

.Blog-cardImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.Blog-cardBody {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 24px 28px 0;
    flex: 1;
}

.Blog-cardTitle {
    margin: 0;
    font-family: "Bree Serif", "bree", serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 30px;
    color: #6b6f70;
}

.Blog-cardExcerpt {
    margin: 0;
    font-family: "Open Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    color: rgba(107, 111, 112, 0.7);
}

.Blog-cardBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 24px 28px 28px;
    height: 40px;
    border-radius: 999px;
    background: #ea5e1d;
    color: #fff;
    font-family: "Bree Serif", "bree", serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 24.29px;
    text-decoration: none;
    flex-shrink: 0;
}

.Blog-cardBtn:hover,
.Blog-cardBtn:focus {
    background: #d05419;
    color: #fff;
    text-decoration: none;
}

.Section--homeFaq {
    padding-top: 80px;
    padding-bottom: 80px;
    background: #fff;
}

.Faq-layout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 80px;
}

.Faq-info {
    display: flex;
    flex-direction: column;
    gap: 40px;
    flex-shrink: 0;
    width: 428px;
}

.Faq-heading {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.Faq-title {
    margin: 0;
    font-family: "Bree Serif", "bree", serif;
    font-size: 56px;
    font-weight: 400;
    line-height: 58px;
    color: #6b6f70;
}

.Faq-title span {
    color: #9a5bb4;
}

.Faq-subtitle {
    margin: 0;
    font-family: "Bree Serif", "bree", serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 24.29px;
    color: #6b6f70;
}

.Faq-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex-shrink: 0;
    width: 592px;
}

.Faq-item {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.Faq-question {
    display: flex;
    align-items: center;
    gap: 16px;
}

.Faq-toggle {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}

.Faq-toggle[aria-expanded="true"] {
    transform: rotate(45deg);
}

.Faq-questionText {
    font-family: "Bree Serif", "bree", serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 30px;
    color: #9a5bb4;
}

.Faq-answer {
    display: none;
    padding-left: 54px;
    color: #6b6f70;
    font-family: "Bree Serif", "bree", serif;
    font-size: 16px;
    line-height: 21px;
}

.Faq-answer.is-open {
    display: block;
}

.Faq-answer p {
    margin: 0;
}

.Faq-divider {
    margin: 0;
    border: none;
    border-top: 1px solid rgba(107, 111, 112, 0.2);
}

/* .Faq-mobileBtn tem a mesma especificidade de .Button-OutlineOrange
   (display:inline-flex), que vem depois no arquivo e venceria o
   display:none — bug que já existe na própria montagem. Escopamos com
   .Faq-layout para garantir que fique escondido no desktop. */
.Faq-layout .Faq-mobileBtn {
    display: none;
}

.Section--homeCtaUrgencia {
    position: relative;
    padding-top: 160px;
    padding-bottom: 160px;
    background: #2b0f33;
    overflow: hidden;
}

.CtaUrgencia-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.CtaUrgencia-bgImg {
    width: 100%;
    height: 100%;
    object-fit: fill;
    mix-blend-mode: screen;
    opacity: 0.57;
}

.CtaUrgencia-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 80px;
    text-align: center;
}

.CtaUrgencia-texts {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.CtaUrgencia-title {
    margin: 0;
    font-family: "Bree Serif", "bree", serif;
    font-size: 56px;
    font-weight: 400;
    line-height: 58px;
    color: #fff;
}

.CtaUrgencia-title span {
    color: #ff751f;
}

.CtaUrgencia-subtitle {
    margin: 0;
    font-family: "Bree Serif", "bree", serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 24.29px;
    color: #fff;
}

.Button-PurpleHome {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 428px;
    height: 85px;
    border-radius: 8px;
    border: 2px solid #fff;
    background: #bc58ff;
    color: #fff;
    font-family: "Bree Serif", "bree", serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 24.29px;
    text-decoration: none;
}

.Button-PurpleHome:hover,
.Button-PurpleHome:focus {
    background: #a040e0;
    color: #fff;
    text-decoration: none;
}

.Section--homeReconhecimento {
    padding-top: 80px;
    padding-bottom: 80px;
    background: #fff;
}

.HomeTitle-h2--reconhecimento {
    margin-bottom: 80px;
}

.Reconhecimento-logos {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
}

.Reconhecimento-track {
    display: flex;
    align-items: center;
    gap: 48px;
    width: max-content;
    animation: reconhecimento-marquee 25s linear infinite;
}

.Reconhecimento-logos:hover .Reconhecimento-track {
    animation-play-state: paused;
}

@keyframes reconhecimento-marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.Reconhecimento-logo {
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
}

.Section--homeCtaFinal {
    position: relative;
    padding-top: 80px;
    padding-bottom: 80px;
    background: linear-gradient(154.24deg, #ebeff0 55%, #5a1b72 93.5%);
    overflow: hidden;
}

.CtaFinal-bg {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 65%;
    object-fit: cover;
    object-position: left center;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.6) 30%, black 70%);
    mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.6) 30%, black 70%);
    pointer-events: none;
}

.CtaFinal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 520px;
}

.CtaFinal-heading {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.CtaFinal-title {
    margin: 0;
    font-family: "Bree Serif", "bree", serif;
    font-size: 56px;
    font-weight: 400;
    line-height: 58px;
    color: #6b6f70;
}

.CtaFinal-title span {
    color: #9a5bb4;
}

.CtaFinal-subtitle {
    margin: 0;
    font-family: "Bree Serif", "bree", serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 24.29px;
    color: #6b6f70;
}

.CtaFinal-form-card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 32px;
    padding: 24px;
    width: 476px;
}

.CtaFinal-fields {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.CtaFinal-field {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.CtaFinal-label {
    font-family: "Bree Serif", "bree", serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 30px;
    color: #9a5bb4;
}

.CtaFinal-input {
    background: transparent;
    border: none;
    border-bottom: 1px solid #6b6f70;
    outline: none;
    font-family: "Bree Serif", "bree", serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 21px;
    color: #6b6f70;
    padding-bottom: 8px;
    width: 100%;
}

.CtaFinal-input::placeholder {
    color: rgba(107, 111, 112, 0.3);
}

.CtaFinal-buttons {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.Button-OutlineOrange {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 428px;
    height: 85px;
    border-radius: 8px;
    border: 2px solid #d05419;
    background: transparent;
    color: #d05419;
    font-family: "Bree Serif", "bree", serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 24.29px;
    text-decoration: none;
    cursor: pointer;
}

.Button-OutlineOrange:hover,
.Button-OutlineOrange:focus {
    background: rgba(208, 84, 25, 0.05);
    color: #d05419;
    text-decoration: none;
}

.Section--homeTestimonials {
    padding-top: 80px;
    padding-bottom: 80px;
    background: #ebeff0;
}

.Section--homeTestimonials .HomeTitle-h2 {
    margin-bottom: 40px;
}

.Testimonials-row {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 68px;
    padding-bottom: 64px;
}

/* build.css tem uma regra global mal-escopada ".box__preco-mercado ul
   div:nth-child(2),div:nth-child(3){...border:0;padding-top:5px;
   padding-bottom:5px;...}" cuja 2ª parte do seletor (sem o prefixo) casa
   com QUALQUER div que seja o 3º filho do pai em qualquer página, com
   especificidade maior que ".Testimonial-card" sozinho. Como há 3 cards
   diretos em .Testimonials-row, o 3º card cai nessa colisão e perde
   border/padding. Escopamos o seletor para vencer a colisão. */
.Testimonials-row .Testimonial-card {
    position: relative;
    width: 291px;
    height: 262px;
    background: rgba(255, 255, 255, 0.7);
    border: 2px solid #d05419;
    border-radius: 36px;
    overflow: visible;
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 28px 32px 0;
}

.Testimonial-quote {
    margin: 0;
    color: #6b6f70;
    font-family: "Bree Serif", "bree", serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 21px;
}

.Testimonial-author {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.Testimonial-name {
    margin: 0;
    color: #d05419;
    font-family: "Bree Serif", "bree", serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 30px;
}

.Testimonial-role {
    margin: 0;
    color: #d05419;
    font-family: "Open Sans", sans-serif;
    font-size: 8px;
    font-weight: 400;
    line-height: 16px;
    text-transform: uppercase;
}

/* .Testimonial-photo é sempre o 3º filho de .Testimonial-card (quote,
   author, photo), então também colide com a regra global vazada
   "div:nth-child(3)" do build.css, que soma padding-top/bottom:5px e
   encolhe a área da foto dentro do círculo de 112px (box-sizing:border-box).
   Escopamos e zeramos o padding explicitamente para vencer a colisão. */
.Testimonial-card .Testimonial-photo {
    position: absolute;
    bottom: -56px;
    left: 28%;
    transform: translateX(-50%);
    width: 112px;
    height: 112px;
    padding: 0;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.Testimonial-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.Section--homeVideo {
    padding-top: 80px;
    padding-bottom: 80px;
    background: #fff;
}

.Section--homeVideo .HomeTitle-h2 {
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 56px;
}

.Video-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 56px;
}

.Video-player {
    position: relative;
    width: 800px;
    height: 450px;
    border-radius: 36px;
    overflow: hidden;
    flex-shrink: 0;
    cursor: pointer;
}

.Video-iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.Video-thumbnail {
    position: absolute;
    width: calc(100% + 56px);
    height: calc(100% + 26px);
    left: -28px;
    top: -13px;
    object-fit: cover;
}

.Video-playBtn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 82px;
    height: 82px;
    background: rgba(0, 0, 0, 0.45);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.Video-playBtn svg {
    margin-left: 5px;
}

.Button-OrangeHome {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: 428px;
    height: 85px;
    justify-content: center;
    border-radius: 8px;
    border: 2px solid #fff;
    background: #ea5e1d;
    color: #fff;
    font-family: "Bree Serif", "bree", serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 24.29px;
    text-decoration: none;
}

.Button-OrangeHome:hover,
.Button-OrangeHome:focus {
    background: #d05419;
    color: #fff;
    text-decoration: none;
}

.Section--homeCta {
    padding-top: 80px;
    padding-bottom: 80px;
    background: var(--Roxo-Mavip-Boto-Hover, #793d89) url(../images/cta-bg.png) no-repeat center center;
    background-size: cover;
}

.Section--homeCta .Cta-Title {
    margin-bottom: 16px;
    font-family: "bree";
    color: var(--Branco-Mavip, #fff);
    text-align: center;
    /* H2 */
    font-size: 56px;
    font-style: normal;
    font-weight: 400;
    line-height: 58px; /* 103.571% */
    text-align: center;
}

.Section--homeCta .Cta-Title span {
    color: var(--Laranja-Mavip, #ff751f);
}

.Section--homeCta .Cta-Subtitle {
    margin-bottom: 80px;
    color: var(--Branco-Mavip, #fff);
    text-align: center;

    /* H6 */
    font-family: "bree";
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 21px; /* 131.25% */
}

.Section--homeCta .Cta-CardRow {
    margin-bottom: 80px;
    display: flex;
    flex-wrap: wrap;
    /* gap: 24px; */
    align-items: center;
    justify-content: center;
}

.Section--homeCta .Cta-Card {
    margin-bottom: 24px;
    display: flex;
    padding: 24px 40px;
    align-items: center;
    gap: 28px;
    grid-row: span 1;
    grid-column: span 1;
    border-radius: 36px;
    border: 2px solid var(--Laranja-Mavip-Boto-Hover, #d05419);
    background: var(--Branco-Mavip, #fff);
}

.Section--homeCta .Cta-Card svg {
    width: 40px;
    min-width: 40px;
    max-width: 40px;
}

.Section--homeCta .Cta-Card .Cta-Card--title {
    color: var(--Laranja-Mavip, #ff751f);

    /* H4 */
    font-family: "bree";
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: 30px; /* 125% */
}

.Section--homeCta .Cta-Card .Cta-Card--text {
    color: var(--Cinza-Mavip, #6b6f70);

    /* H6 */
    font-family: "bree";
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 21px; /* 131.25% */
}

.Section--homeProcess {
    padding-top: 80px;
    padding-bottom: 80px;
    background: #EBEFF0;
}

.Section--homeProcess .HomeTitle-h2 {
    margin-bottom: 40px;
}

.process-carousel {
    position: relative;
}


.carousel-container {
    overflow: hidden;
}

.carousel-track {
    display: flex;
    align-items: center;
    gap: 16px;
    transition: transform 0.5s ease;
    cursor: grab;
    user-select: none;
}

.carousel-track:active {
    cursor: grabbing;
}

/* build.css tem uma regra global mal-escopada ".box__preco-mercado ul
   div:nth-child(2),div:nth-child(3){...border:0...}" cuja 2ª parte do
   seletor (sem o prefixo) casa com QUALQUER div que seja o 3º filho do pai
   em qualquer página, e tem especificidade maior que ".Process-Card"
   sozinho. Como o carrossel intercala <div class="Process-Card"> e
   <span class="Process-Arrow">, o 2º card acaba sendo o 3º filho de
   .carousel-track e perde a borda. Reforçamos o seletor aqui para vencer
   essa colisão sem mexer no build.css (usado por outras páginas). */
.carousel-track .Process-Card {
    min-width: 427px;
    flex: 0 0 427px;
    height: 241px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 16px;
    padding: 0 52px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 36px;
    border: 2px solid var(--Roxo-Mavip, #9a5bb4);
    transition: box-shadow 0.3s ease;
}

.Process-Card:hover {
    box-shadow: 0 8px 32px rgba(154, 91, 180, 0.15);
}

.Process-Arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 9px;
}

.process-carousel-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-top: 24px;
}

.process-nav-btn {
    background: none;
    border: none;
    padding: 8px 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.process-nav-btn:hover {
    opacity: 1;
}

.Process-Card-icon {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
}

.Process-Card-icon img {
    width: 38px;
    height: 38px;
    object-fit: contain;
}

.Process-Card-title {
    margin: 0;
    color: var(--Roxo-Mavip, #9a5bb4);
    font-family: "bree";
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: 30px;
}

.Process-Card-text {
    margin: 0;
    color: var(--Cinza-Mavip, #6b6f70);
    font-family: "bree";
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 21px;
}


/* Responsivo */
@media (max-width: 1199px) {
    .Process-Card {
        min-width: 360px;
        flex: 0 0 360px;
        padding: 0 40px;
    }
}

@media (max-width: 991px) {
    .Process-Card {
        min-width: 300px;
        flex: 0 0 300px;
        height: 220px;
        padding: 0 32px;
    }
}

@media (max-width: 768px) {
    .Process-Card {
        min-width: 260px;
        flex: 0 0 260px;
        padding: 0 28px;
    }

    .process-carousel::after {
        width: 20%;
    }
}

/* ===== COMPACT NAVBAR (≥768px) ===== */
/* Overrides main.css default padding to keep navbar ~70px tall (matching design) */
@media (min-width: 768px) {
    .Header--home .navbar-brand {
        padding: 10px 15px;
    }
    .Header--home .navbar-logo {
        height: 50px;
        width: auto;
        max-width: none;
    }
    .Header--home .navbar-nav > li {
        padding: 15px 0;
    }
}

/* ===== TABLET HERO (961px–1199px) ===== */
@media (min-width: 971px) and (max-width: 1199px) {
    .Header-heroImages { width: 55%; }
}

/* ===== HERO FLUID TYPOGRAPHY (961px+) ===== */
/* Title: 40px @ 961px → 82px @ 1500px (linear interpolation) */
@media (min-width: 971px) {
    .Header--home .Header-title {
        font-size: clamp(40px, calc(-16.36px + 6.557vw), 82px);
        line-height: clamp(42px, calc(-14px + 6.9vw), 86px);
    }
}

/* ===== MD HERO (961px–1199px): layout fixes ===== */
@media (min-width: 971px) and (max-width: 1199px) {
    .Header--home .Header-text { font-size: 14px; line-height: 20px; margin-bottom: 16px; }
    .Header--home .Button-CtaHome { padding: 14px 28px; font-size: 13px; margin-bottom: 16px; }
    .Header--home .Header-cta { font-size: 13px; line-height: 18px; }
    .Header--home .Header-cards img { width: 32px; height: 32px; }
    .Header--home .Header-cards { display: flex; align-items: center; gap: 12px; max-width: none; }
    .Header--home .Header-cards .col-lg-5,
    .Header--home .Header-cards .col-lg-7 { width: auto; float: none; padding: 0; flex-shrink: 0; }
    .Header-heroR { width: 90%; }
}

/* ===== DESKTOP MD HERO (1200px–1499px): layout fixes ===== */
@media (min-width: 1200px) and (max-width: 1499px) {
    .Header--home .Header-title { font-size: clamp(40px, calc(-16.36px + 6.557vw), 64px); line-height: clamp(42px, calc(-14px + 6.9vw), 68px); }
    .Header--home .Header-text { font-size: 15px; line-height: 21px; margin-bottom: 20px; }
    .Header--home .Button-CtaHome { padding: 16px 32px; font-size: 14px; margin-bottom: 20px; }
    .Header--home .Header-cards { display: flex; align-items: center; gap: 16px; max-width: none; }
    .Header--home .Header-cards .col-lg-5,
    .Header--home .Header-cards .col-lg-7 { width: auto; float: none; padding: 0; flex-shrink: 0; }
    .Header--home .Header-cta { font-size: 13px; line-height: 18px; }
    .Header-heroR { width: 82%; }
}

/* Botão: max-width em tablets (768–970px) */
@media (min-width: 768px) and (max-width: 970px) {
    .Header--home .Button-CtaHome {
        max-width: 420px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* ===== DESKTOP HERO (≥1500px) ===== */
@media (min-width: 1500px) {
    .Header--home .Header-title {
        font-size: 82px;
        line-height: 84px;
    }
    .Header-heroImages {
        right: 0;
        width: 61%;
    }
}

/* ===== SM HERO NAVBAR FIX (768px–991px) ===== */
/* At sm (750px container) the 5 nav items (495px) don't fit alongside the
   250px header in 470px of space → navbar wraps to 2 rows (283px tall) +
   160px margin = 443px navbar section → hero becomes 1172px → people
   appear at y=680, below the 800px viewport fold */
@media (min-width: 768px) and (max-width: 991px) {
    .navbar-default {
        margin-bottom: 60px; /* from 80px — tighter hero on sm */
    }
    .navbar-nav > li > a {
        padding-left: 10px;
        padding-right: 10px; /* from 15px — saves 50px total, fixes wrapping */
    }
}

/* ===== TABLET FAQ (768px–1199px) ===== */
@media (min-width: 768px) and (max-width: 1199px) {
    .Faq-layout {
        flex-direction: column;
        align-items: stretch;
        gap: 32px;
    }
    .Faq-info {
        width: 100%;
    }
    .Faq-list {
        width: 100%;
    }
}

/* ===== TABLET BLOG + TESTIMONIALS (768px–991px) ===== */
@media (min-width: 768px) and (max-width: 991px) {
    /* Blog */
    .Blog-list { flex-direction: column; margin-bottom: 32px; }
    .Blog-cardImg { aspect-ratio: 16 / 7; }
    .Blog-cardTitle { font-size: 20px; line-height: 26px; }
    .Blog-cardBody { padding: 20px 24px 0; gap: 12px; }
    .Blog-cardBtn { margin: 16px 24px 24px; height: 44px; }
    .Section--homeBlog .text-center { width: 100%; }
    .Testimonials-row {
        flex-direction: column;
        gap: 16px;
        padding-bottom: 0;
        align-items: stretch;
    }
    /* mesma especificidade de .Testimonials-row .Testimonial-card (fix da
       colisão com build.css) para que esta regra tablet continue vencendo */
    .Testimonials-row .Testimonial-card {
        width: 100%;
        height: auto;
        border-radius: 24px;
        border: 1px solid #d05419;
        padding: 24px;
        display: grid;
        grid-template-areas:
            "quote quote"
            "photo author";
        grid-template-columns: 48px 1fr;
        grid-template-rows: auto auto;
        column-gap: 12px;
        row-gap: 20px;
        overflow: visible;
    }
    .Testimonial-quote {
        grid-area: quote;
        font-size: 16px;
        line-height: 21px;
        margin: 0;
    }
    .Testimonial-author {
        grid-area: author;
        gap: 4px;
        align-self: center;
    }
    .Testimonial-name {
        font-size: 18px;
        line-height: 24px;
    }
    /* mesma especificidade de .Testimonial-card .Testimonial-photo (fix da
       colisão com build.css) para que esta regra tablet continue vencendo */
    .Testimonial-card .Testimonial-photo {
        grid-area: photo;
        position: relative;
        bottom: auto;
        left: auto;
        transform: none;
        width: 48px;
        height: 48px;
        padding: 0;
        align-self: center;
    }
}

/* ===== TABLET TESTIMONIALS (992px–1199px) ===== */
@media (min-width: 992px) and (max-width: 1199px) {
    .Testimonials-row {
        gap: 24px;
    }
    .Testimonials-row .Testimonial-card {
        width: calc((100% - 48px) / 3);
    }
}

/* ===== MOBILE HERO DEFAULTS (hidden on desktop) ===== */
.Header-heroBgPhotoMobile { display: none; }
.Header-heroRMobile { display: none; }
.Header-heroPersonMobile { display: none; }
.Header-heroGradientMobile { display: none; }

/* ===== MOBILE RESPONSIVO ===== */
@media (max-width: 970px) {

    /* Seção hero: fundo roxo escuro sólido (bg-photo tratado por elemento interno) */
    .Header--home {
        background-color: #1b0a22;
        background-image: none;
        padding-bottom: 60px;
    }

    /* Navbar: sem margem inferior grande */
    .navbar-default {
        margin-bottom: 0;
    }

    /* Container principal de imagens: largura fixa do design, centralizado */
    .Header-heroImages {
        position: absolute !important;
        top: 0 !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        right: auto !important;
        bottom: auto !important;
        width: 390px !important;
        height: 530px !important;
        overflow: visible;
        z-index: 0 !important;
    }

    /* ---- bg-photo (Figma node 490:657) ---- */
    /* left: compensa translateX(-195px) do container + -56px do design = -50vw + 139px */
    .Header-heroBgPhotoMobile {
        display: block !important;
        position: absolute;
        top: -179px;
        left: calc(-50vw + 195px);
        width: 100vw;
        height: 526px;
        overflow: hidden;
    }

    /* Foto de fundo: recortada para mostrar a parte central da imagem */
    .Header-heroBgPhotoImg {
        display: block;
        position: absolute;
        top: 0;
        left: -148%; /* -147.77% de 502px ≈ -741px */
        width: 285%; /* 284.83% de 502px ≈ 1430px */
        height: 100%;
        max-width: none;
        object-fit: fill;
    }

    /* Overlay diagonal escurecendo a foto */
    .Header-heroBgPhotoGradient {
        position: absolute;
        inset: 0;
        background: linear-gradient(-53.96deg, #1b0a22 25%, rgba(27, 10, 34, 0.7) 50%, #1b0a22 75%);
    }

    /* ---- Símbolo R mobile ---- */
    .Header-heroRMobile {
        display: block !important;
        position: absolute;
        left: 29.61px;
        top: 78px;
        width: 329.843px;
        height: 419.411px;
        mix-blend-mode: plus-lighter;
        opacity: 0.86;
        object-fit: fill;
    }

    /* Desktop: R e pessoas ficam ocultos */
    .Header-heroR { display: none !important; }
    .Header-heroPerson { display: none !important; }

    /* ---- Fotos das pessoas mobile ---- */
    .Header-heroPersonMobile {
        display: block !important;
        position: absolute;
        overflow: hidden;
    }

    .Header-heroPersonMobile-img {
        display: block;
        width: 108%;
        height: 108%;
        margin: -4%;
        object-fit: fill;
    }

    .Header-heroPersonMobile--left {
        left: -26px;
        top: 210px;
        width: 310px;
        height: 316px;
    }

    .Header-heroPersonMobile--right {
        left: 123px;
        top: 209px;
        width: 278px;
        height: 292px;
    }

    /* ---- Degradê fade inferior ---- */
    .Header-heroGradientMobile {
        display: block !important;
        position: absolute;
        top: 298px;
        left: calc(-50vw + 195px);
        width: 100vw;
        height: 228px;
        background: linear-gradient(to top, #1b0a22 15.789%, rgba(27, 10, 34, 0) 100%);
        pointer-events: none;
    }

    /* Container full-width no mobile */
    .Header--home > .container {
        width: 100% !important;
        max-width: none !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* ---- Área de conteúdo: empurrar abaixo das imagens ---- */
    .Header--home .container > .row:nth-child(2) {
        position: relative;
        z-index: 1;
        padding-top: 400px;
    }

    /* Coluna de conteúdo: full width no mobile */
    .Header--home .container > .row:nth-child(2) > [class*="col-"] {
        width: 100% !important;
        float: none !important;
    }

    /* Título: 40px, line-height 49px, centralizado */
    .Header--home .Header-title {
        font-size: 40px !important;
        line-height: 49px !important;
        text-align: center;
    }

    /* Subtítulo: 16px centralizado */
    .Header--home .Header-text {
        text-align: center;
        font-size: 16px;
        line-height: 21px;
    }

    /* Botão CTA: largura total, 72px altura */
    .Button-CtaHome {
        display: flex !important;
        width: 100%;
        justify-content: center;
        padding: 0 20px;
        height: 72px;
        box-sizing: border-box;
    }

    /* ---- Trust section: centralizada ---- */
    .Header--home .Header-cards {
        max-width: 100%;
        text-align: center;
    }

    .Header--home .Header-cards .col-lg-5 {
        display: flex;
        justify-content: center;
        margin-bottom: 16px;
    }

    .Header--home .Header-cards .d-flex {
        justify-content: center !important;
    }

    /* Avatares: 40px, mesma margem negativa de sobreposição */
    .Header--home .Header-cards img {
        width: 40px !important;
        height: 40px !important;
    }

    .Header--home .Header-cta {
        text-align: center;
    }

    .Header--home .Header-cta p {
        text-align: center;
        color: rgba(255, 255, 255, 0.7);
    }

    /* ===== SEÇÃO ERROS / CTA ===== */
    .Section--homeCta {
        padding-top: 48px;
        padding-bottom: 48px;
        padding-left: 20px;
        padding-right: 20px;
        background-image: none;
    }
    .Section--homeCta .container {
        padding-left: 0;
        padding-right: 0;
    }
    .Section--homeCta .Cta-Title {
        font-size: 32px;
        line-height: 34px;
        margin-bottom: 24px;
    }
    .Section--homeCta .Cta-Subtitle {
        margin-bottom: 32px;
    }
    .Section--homeCta .Cta-CardRow {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 8px;
        margin-bottom: 32px;
        margin-left: 0;
        margin-right: 0;
    }
    .Section--homeCta .Cta-CardRow .col-lg-5 {
        width: 100%;
        padding: 0;
    }
    .Section--homeCta .Cta-Card {
        padding: 20px;
        border-radius: 24px;
        border: none;
        gap: 16px;
        align-items: flex-start;
        margin-bottom: 0;
    }
    .Section--homeCta .Cta-Card svg {
        width: 32px;
        min-width: 32px;
        max-width: 32px;
        flex-shrink: 0;
    }
    .Section--homeCta .Cta-Card .Cta-Card--title {
        font-size: 16px;
        line-height: 21px;
    }
    .Section--homeCta .Cta-Card .Cta-Card--text {
        font-family: "Open Sans", sans-serif;
        font-size: 14px;
        font-weight: 600;
        line-height: 20px;
    }
    .Section--homeCta .text-center {
        width: 100%;
    }
    .Section--homeCta .Button-CtaHome {
        width: 100%;
        height: 72px;
        box-sizing: border-box;
        justify-content: center;
    }

    /* ===== SEÇÃO DEPOIMENTOS ===== */
    .Section--homeTestimonials {
        padding-top: 48px;
        padding-bottom: 48px;
    }
    .Section--homeTestimonials .container {
        padding-left: 20px;
        padding-right: 20px;
    }
    .Section--homeTestimonials .HomeTitle-h2 {
        font-size: 32px;
        line-height: 34px;
        margin-bottom: 32px;
    }
    .Testimonials-row {
        flex-direction: column;
        gap: 16px;
        padding-bottom: 0;
        align-items: stretch;
    }
    /* mesma especificidade de .Testimonials-row .Testimonial-card (fix da
       colisão com build.css) para que esta regra mobile continue vencendo */
    .Testimonials-row .Testimonial-card {
        width: 100%;
        height: auto;
        border-radius: 24px;
        border: 1px solid #d05419;
        padding: 24px;
        /* grid: quote em cima (full width), foto+autor lado a lado em baixo */
        display: grid;
        grid-template-areas:
            "quote quote"
            "photo author";
        grid-template-columns: 48px 1fr;
        grid-template-rows: auto auto;
        column-gap: 12px;
        row-gap: 20px;
        overflow: visible;
    }
    .Testimonial-quote {
        grid-area: quote;
        font-size: 16px;
        line-height: 21px;
        margin: 0;
    }
    .Testimonial-author {
        grid-area: author;
        flex-direction: column;
        gap: 4px;
        align-items: flex-start;
        align-self: center;
    }
    .Testimonial-name {
        font-size: 18px;
        line-height: 24px;
    }
    /* mesma especificidade de .Testimonial-card .Testimonial-photo (fix da
       colisão com build.css) para que esta regra mobile continue vencendo */
    .Testimonial-card .Testimonial-photo {
        grid-area: photo;
        position: relative;
        bottom: auto;
        left: auto;
        transform: none;
        width: 48px;
        height: 48px;
        padding: 0;
        flex-shrink: 0;
        align-self: center;
    }

    /* ===== SEÇÃO VÍDEO ===== */
    .Section--homeVideo {
        padding-top: 48px;
        padding-bottom: 48px;
    }
    .Section--homeVideo .container {
        padding-left: 20px;
        padding-right: 20px;
    }
    .Section--homeVideo .HomeTitle-h2 {
        font-size: 32px;
        line-height: 34px;
        margin-bottom: 32px;
        max-width: 100%;
    }
    .Section--homeVideo .Video-wrapper {
        margin-bottom: 32px;
    }
    .Section--homeVideo .Video-player {
        width: 100%;
        height: 220px;
        border-radius: 24px;
        overflow: hidden;
    }
    .Section--homeVideo .Video-thumbnail {
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        border-radius: 24px;
        object-fit: cover;
    }
    .Section--homeVideo .text-center {
        width: 100%;
    }
    .Section--homeVideo .Button-OrangeHome {
        width: 100%;
        height: 72px;
        box-sizing: border-box;
        justify-content: center;
        border-radius: 8px;
        border: 2px solid #fff;
    }

    /* ===== SEÇÃO PROCESSO ===== */
    .Section--homeProcess {
        padding-top: 48px;
        padding-bottom: 48px;
    }
    .Section--homeProcess .container {
        padding-left: 0;
        padding-right: 0;
    }
    .Section--homeProcess .HomeTitle-h2 {
        font-size: 32px;
        line-height: 34px;
        margin-bottom: 32px;
        padding-left: 20px;
        padding-right: 20px;
    }
    .Section--homeProcess .carousel-container {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        scroll-padding-left: 20px;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding: 0;
    }
    .Section--homeProcess .carousel-container::-webkit-scrollbar {
        display: none;
    }
    .Section--homeProcess .carousel-track {
        gap: 8px;
        padding-left: 20px;
        padding-right: 20px;
        transform: none !important;
        transition: none !important;
    }
    .Section--homeProcess .Process-Card {
        min-width: calc(100vw - 40px);
        flex: 0 0 calc(100vw - 40px);
        height: auto;
        min-height: 89px;
        padding: 24px;
        scroll-snap-align: start;
        display: grid;
        grid-template-columns: 32px 1fr;
        grid-template-rows: auto auto;
        column-gap: 16px;
        row-gap: 8px;
        align-items: start;
        justify-content: start;
        flex-direction: unset;
    }
    .Section--homeProcess .Process-Card-icon {
        grid-column: 1;
        grid-row: 1 / 3;
        align-self: start;
        width: 32px;
        height: 32px;
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
    }
    .Section--homeProcess .Process-Card-icon img {
        width: 32px;
        height: 32px;
        object-fit: contain;
    }
    .Section--homeProcess .Process-Card-title {
        grid-column: 2;
        grid-row: 1;
        font-size: 16px;
        line-height: 21px;
        margin: 0;
    }
    .Section--homeProcess .Process-Card-text {
        grid-column: 2;
        grid-row: 2;
        font-family: "Open Sans", sans-serif;
        font-size: 14px;
        font-weight: 600;
        line-height: 20px;
        margin: 0;
    }
    .Section--homeProcess .Process-Arrow {
        display: none;
    }
    .process-carousel-nav {
        display: none;
    }
    .Section--homeProcess .process-carousel-nav {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 16px;
        margin-top: 16px;
    }
    .process-nav-btn {
        background: none;
        border: none;
        padding: 4px 8px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* ===== SEÇÃO RECONHECIMENTO ===== */
    .Section--homeReconhecimento { padding-top: 48px; padding-bottom: 48px; }
    .Section--homeReconhecimento .container { padding-left: 0; padding-right: 0; }
    .HomeTitle-h2--reconhecimento {
        font-size: 32px;
        line-height: 34px;
        margin-bottom: 32px;
        padding-left: 20px;
        padding-right: 20px;
    }
    .Reconhecimento-logos {
        -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
        mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    }
    .Reconhecimento-track { gap: 27px; }
    .Reconhecimento-logo { max-height: 65px !important; }

    /* ===== SEÇÃO BLOG ===== */
    .Section--homeBlog { padding-top: 48px; padding-bottom: 48px; }
    .Section--homeBlog .container { padding-left: 20px; padding-right: 20px; }
    .Section--homeBlog .HomeTitle-h2 { font-size: 32px; line-height: 34px; margin-bottom: 32px; }
    .Blog-list { flex-direction: column; margin-bottom: 32px; }
    .Blog-cardImg { aspect-ratio: unset; height: 160px; }
    .Blog-cardBody { padding: 20px 20px 0; gap: 12px; }
    .Blog-cardBtn { margin: 12px 20px 20px; height: 44px; }
    .Section--homeBlog .text-center { width: 100%; }

    /* ===== SEÇÃO FAQ ===== */
    .Section--homeFaq { padding-top: 48px; padding-bottom: 48px; }
    .Section--homeFaq .container { padding-left: 20px; padding-right: 20px; }
    .Faq-layout { flex-direction: column; gap: 32px; align-items: stretch; }
    .Faq-info { width: 100%; gap: 0; }
    .Faq-info .Button-OutlineOrange { display: none; }
    .Faq-heading { gap: 24px; }
    .Faq-title { font-size: 32px; line-height: 34px; text-align: center; }
    .Faq-subtitle { font-size: 16px; line-height: 21px; text-align: center; }
    .Faq-list { width: 100%; gap: 20px; }
    .Faq-questionText { font-size: 16px; line-height: 21px; }
    .Faq-answer { padding-left: 54px; }
    .Faq-layout .Faq-mobileBtn {
        display: inline-flex;
        width: 100%;
        height: 72px;
        box-sizing: border-box;
        justify-content: center;
    }

    /* ===== SEÇÃO CTA URGÊNCIA ===== */
    .Section--homeCtaUrgencia { padding-top: 40px; padding-bottom: 40px; }
    .Section--homeCtaUrgencia .container { padding-left: 20px; padding-right: 20px; }
    .CtaUrgencia-bgImg { object-fit: cover; object-position: bottom; }
    .CtaUrgencia-content { gap: 32px; }
    .CtaUrgencia-title { font-size: 32px; line-height: 34px; }
    .CtaUrgencia-subtitle { font-size: 16px; line-height: 21px; }
    .Section--homeCtaUrgencia .Button-PurpleHome { width: 100%; height: 85px; box-sizing: border-box; }

    /* ===== SEÇÃO CTA FINAL / SEARCH ===== */
    .Section--homeCtaFinal {
        padding-top: 48px;
        padding-bottom: 48px;
        padding-left: 20px;
        padding-right: 20px;
        background: linear-gradient(115.47deg, #ebeff0 55.095%, #5a1b72 93.503%);
    }
    .Section--homeCtaFinal .container {
        padding-left: 0;
        padding-right: 0;
    }
    .CtaFinal-bg { display: none; }
    .CtaFinal-content { max-width: 100%; gap: 32px; }
    .CtaFinal-heading { gap: 24px; text-align: center; }
    .CtaFinal-title { font-size: 32px; line-height: 34px; text-align: center; }
    .CtaFinal-subtitle { font-size: 16px; line-height: 21px; text-align: center; }
    .CtaFinal-form-card { width: 100%; box-sizing: border-box; }
    .CtaFinal-label { font-size: 18px; line-height: 24.29px; }
    .CtaFinal-field { gap: 16px; }
    .CtaFinal-buttons { gap: 16px; }
    .Section--homeCtaFinal .Button-OrangeHome {
        width: 100%;
        height: 72px;
        box-sizing: border-box;
        justify-content: center;
        border-radius: 8px;
    }
    .Button-OutlineOrange {
        width: 100%;
        height: 72px;
        box-sizing: border-box;
    }

    /* ===== SEÇÃO LOGOS / SPONSORS ===== */
    .Section.Section--homeSponsors {
        padding-top: 16px;
        padding-bottom: 16px;
    }
    .Section--homeSponsors .container {
        padding-left: 20px;
        padding-right: 20px;
    }
    .Sponsors-img {
        height: 40px;
        width: auto;
        max-width: 100%;
        margin: 0 auto;
        display: block;
    }
}

