/* ====================================================================
   Página: Apoie o Percorre
   ==================================================================== */

/* Swiper — easing override */
.swiper-wrapper {
    transition-timing-function: cubic-bezier(0.32, 0.72, 0, 1);
}

/* ----- Section: Hero ----- */
.ap-hero {
    background-color: var(--semantics-colors-fill-accent-pitaya);
    color: var(--semantics-colors-text-on-dark);
    overflow: hidden;
}

.ap-hero__inner {
    width: 100%;
    padding-left: max(var(--semantics-spacing-large), calc((100% - var(--semantics-container-max)) / 2 + var(--semantics-spacing-large)));
    display: flex;
    align-items: center;
    gap: var(--semantics-spacing-bigger);
}

.ap-hero__content {
    flex: 0 0 540px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--semantics-spacing-wide);
    padding: var(--semantics-padding-broad) 0;
}

.ap-hero__text {
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-medium);
}

.ap-hero__title {
    font-family: var(--semantics-typography-family-poppins);
    font-weight: 700;
    font-size: var(--semantics-typography-display-48);
    line-height: var(--semantics-typography-baseline-tight);
    letter-spacing: var(--semantics-typography-tracking-tight-2);
    color: var(--semantics-colors-text-on-dark);
    margin: 0;
    overflow-wrap: break-word;
}

.ap-hero__desc {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 400;
    font-size: var(--semantics-typography-body-18);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-on-dark);
    margin: 0;
    max-width: 498px;
}

.ap-hero__image {
    flex: 1 1 0;
    height: 630px;
    overflow: hidden;
}

.ap-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Wrapper compartilhado das seções */
.ap-como__inner,
.ap-turmas__inner,
.ap-depoimentos__inner,
.ap-parceiros__inner,
.ap-gov__inner {
    width: 100%;
    max-width: var(--semantics-container-max);
    margin: 0 auto;
    padding: 0 var(--semantics-spacing-large);
}

/* ----- Section: Como Apoiar ----- */
.ap-como {
    background-color: var(--semantics-colors-fill-neutral-subtle);
    padding: var(--semantics-padding-broad) 0;
}

.ap-como__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--semantics-spacing-broad);
}

.ap-como__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--semantics-spacing-large);
    text-align: center;
}

.ap-como__title {
    font-family: var(--semantics-typography-family-poppins);
    font-weight: 700;
    font-size: var(--semantics-typography-heading-x-large);
    line-height: var(--semantics-typography-baseline-tight);
    letter-spacing: var(--semantics-typography-tracking-tight-2);
    color: var(--semantics-colors-text-heading-default);
    margin: 0;
    max-width: 800px;
}

.ap-como__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--semantics-spacing-bigger);
    width: 100%;
}

.ap-card {
    background-color: var(--semantics-colors-fill-neutral);
    border: var(--semantics-stroke-thin) solid var(--semantics-colors-stroke-primary);
    border-radius: var(--semantics-radius-larger);
    padding: var(--semantics-spacing-big);
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-large);
    align-items: flex-start;
}

.ap-card__icon {
    width: 56px;
    height: 56px;
    border-radius: var(--semantics-radius-full);
    background-color: var(--semantics-colors-fill-accent-petunia-subtle);
    color: var(--semantics-colors-text-accent-purpura);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    flex-shrink: 0;
}

.ap-card__title {
    font-family: var(--semantics-typography-family-poppins);
    font-weight: 700;
    font-size: var(--semantics-typography-heading-x-small);
    line-height: var(--semantics-typography-baseline-tight);
    letter-spacing: var(--semantics-typography-tracking-tight-1);
    color: var(--semantics-colors-text-heading-default);
    margin: 0;
}

.ap-card__desc {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 400;
    font-size: var(--semantics-typography-body-16);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-secondary);
    margin: 0;
}

/* ----- Section: Patrocínio de Turmas ----- */
.ap-turmas {
    background-color: var(--semantics-colors-fill-background-primary);
    padding: var(--semantics-padding-broad) 0;
}

.ap-turmas__inner {
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-wide);
}

.ap-turmas__title {
    font-family: var(--semantics-typography-family-poppins);
    font-weight: 700;
    font-size: var(--semantics-typography-heading-x-large);
    line-height: var(--semantics-typography-baseline-tight);
    letter-spacing: var(--semantics-typography-tracking-tight-2);
    color: var(--semantics-colors-text-heading-default);
    text-align: center;
    margin: 0;
}

.ap-turmas__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--semantics-spacing-big);
}

.ap-turma {
    border-radius: var(--semantics-radius-larger);
    padding: var(--semantics-spacing-wide) var(--semantics-spacing-big);
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-larger);
}

.ap-turma--regular {
    background-color: var(--semantics-colors-fill-primary-subtle);
}

.ap-turma--afirmativa {
    background-color: var(--semantics-colors-fill-accent-pistache-subtle);
}

.ap-turma__title {
    font-family: var(--semantics-typography-family-poppins);
    font-weight: 700;
    font-size: var(--semantics-typography-heading-x-small);
    line-height: var(--semantics-typography-baseline-tight);
    letter-spacing: var(--semantics-typography-tracking-tight-1);
    color: var(--semantics-colors-text-heading-default);
    margin: 0;
}

.ap-turma__desc {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 400;
    font-size: var(--semantics-typography-body-16);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-secondary);
    margin: 0;
}

.ap-turma__impacto {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 400;
    font-size: var(--semantics-typography-body-14);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-secondary);
    margin: 0;
}

.ap-turma__impacto strong {
    font-weight: 700;
}

/* ----- Section: Depoimentos ----- */
.ap-depoimentos {
    background-color: var(--semantics-colors-fill-accent-petunia);
    color: var(--semantics-colors-text-on-dark);
    padding: var(--semantics-spacing-massive) 0;
    overflow: hidden;
}

.ap-depoimentos__inner {
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-wide);
}

.ap-depoimentos__header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--semantics-spacing-small);
}

.ap-depoimentos__title {
    font-family: var(--semantics-typography-family-poppins);
    font-weight: 700;
    font-size: var(--semantics-typography-heading-xx-large);
    line-height: var(--semantics-typography-baseline-tight);
    letter-spacing: var(--semantics-typography-tracking-tight-2);
    color: var(--semantics-colors-text-on-dark);
    margin: 0;
}

.ap-depoimentos__swiper {
    width: 100%;
    overflow: visible;
    padding-bottom: var(--semantics-spacing-bigger);
}

.ap-depoimentos__swiper .swiper-slide {
    width: 550px;
    height: auto;
    display: flex;
}

.ap-depoimento {
    background-color: rgb(from var(--semantics-colors-fill-overlay-light) r g b / 0.07);
    border-radius: var(--semantics-radius-big);
    padding: var(--semantics-spacing-wide) var(--semantics-spacing-big);
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-larger);
    width: 100%;
    min-height: 290px;
}

.ap-depoimentos__controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--semantics-spacing-large);
    margin-top: var(--semantics-spacing-bigger);
}

.ap-depoimentos__nav {
    display: flex;
    gap: var(--semantics-spacing-medium);
    align-items: center;
}

.ap-depoimentos__btn {
    position: static;
    width: 44px;
    height: 44px;
    border-radius: var(--semantics-radius-full);
    background-color: rgb(from var(--semantics-colors-fill-overlay-light) r g b / 0.1);
    color: var(--semantics-colors-text-on-dark);
    border: 0;
    margin: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--semantics-typography-body-16);
    transition: background-color var(--semantics-motion-duration-fast) var(--semantics-motion-easing-standard);
}

.ap-depoimentos__btn:hover {
    background-color: rgb(from var(--semantics-colors-fill-overlay-light) r g b / 0.2);
}

.ap-depoimentos__btn::after {
    display: none;
}

.ap-depoimentos__btn.swiper-button-disabled {
    opacity: var(--semantics-opacity-muted);
    cursor: not-allowed;
}

.ap-depoimentos__pagination.swiper-pagination {
    position: static;
    display: inline-flex;
    align-items: center;
    gap: var(--semantics-spacing-small);
    width: auto;
}

.ap-depoimentos__pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background-color: var(--semantics-colors-fill-overlay-light);
    opacity: var(--semantics-opacity-muted);
    margin: 0 !important;
    transition: width var(--semantics-motion-duration-base) var(--semantics-motion-easing-standard), opacity var(--semantics-motion-duration-fast) var(--semantics-motion-easing-standard);
    border-radius: var(--semantics-radius-full);
}

.ap-depoimentos__pagination .swiper-pagination-bullet-active {
    opacity: var(--semantics-opacity-full);
    width: 24px;
}

.ap-depoimento__quote {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 400;
    font-size: var(--semantics-typography-body-16);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-on-dark);
    margin: 0;
    flex: 1;
}

.ap-depoimento__author {
    display: flex;
    align-items: center;
    gap: var(--semantics-spacing-medium);
}

.ap-depoimento__avatar {
    width: 60px;
    height: 60px;
    border-radius: var(--semantics-radius-full);
    background-color: var(--semantics-colors-fill-accent-pistache);
    color: var(--semantics-colors-text-on-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--semantics-typography-family-inter);
    font-weight: 700;
    font-size: var(--semantics-typography-body-16);
    flex-shrink: 0;
    overflow: hidden;
}

.ap-depoimento__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ap-depoimento__name {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 700;
    font-size: var(--semantics-typography-body-14);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-on-dark);
    margin: 0;
}

.ap-depoimento__role {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 400;
    font-size: var(--semantics-typography-label-12);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-on-dark);
    margin: 0;
    opacity: 0.7;
}

/* ----- Section: Nossos Parceiros ----- */
.ap-parceiros {
    background-color: var(--semantics-colors-fill-neutral);
    padding: var(--semantics-padding-broad) 0;
}

.ap-parceiros__inner {
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-wide);
}

.ap-parceiros__title {
    font-family: var(--semantics-typography-family-poppins);
    font-weight: 700;
    font-size: var(--semantics-typography-heading-x-large);
    line-height: var(--semantics-typography-baseline-tight);
    letter-spacing: var(--semantics-typography-tracking-tight-2);
    color: var(--semantics-colors-text-heading-default);
    text-align: center;
    margin: 0;
    max-width: 700px;
    align-self: center;
}

.ap-tier {
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-large);
}

.ap-tier__heading {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 700;
    font-size: var(--semantics-typography-body-18);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-accent-purpura);
    margin: 0;
}

.ap-tier__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--semantics-spacing-bigger);
}

.ap-tier__grid--4col {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ap-tier__grid--7col {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.ap-tier__grid--8col {
    grid-template-columns: repeat(8, minmax(0, 1fr));
}

.ap-tier__grid--single {
    display: flex;
    gap: 0;
}

.ap-logo {
    height: 130px;
    background-color: var(--semantics-colors-fill-neutral);
    border: var(--semantics-stroke-thin) solid var(--semantics-colors-stroke-primary);
    border-radius: var(--semantics-radius-large);
    padding: var(--semantics-spacing-medium);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-family: var(--semantics-typography-family-inter);
    font-weight: 600;
    font-size: var(--semantics-typography-body-14);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-secondary);
}

.ap-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.ap-tier__grid--single .ap-logo {
    width: 428px;
    max-width: 100%;
}

/* ----- Section: Parceiros Governamentais + Leis ----- */
.ap-gov {
    background-color: var(--semantics-colors-fill-neutral-subtle);
    padding: var(--semantics-padding-broad) 0;
}

.ap-gov__inner {
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-broad);
}

.ap-gov__block {
    display: flex;
    flex-direction: column;
    gap: var(--semantics-spacing-large);
}

.ap-gov__heading {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 700;
    font-size: var(--semantics-typography-body-18);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-primary);
    margin: 0;
}

.ap-gov__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--semantics-spacing-bigger);
}

.ap-gov__logo {
    height: 90px;
    background-color: var(--semantics-colors-fill-neutral);
    border: var(--semantics-stroke-thin) solid var(--semantics-colors-stroke-primary);
    border-radius: var(--semantics-radius-large);
    padding: var(--semantics-spacing-small) var(--semantics-spacing-medium);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-family: var(--semantics-typography-family-inter);
    font-weight: 600;
    font-size: var(--semantics-typography-label-12);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-secondary);
}

.ap-gov__logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Lista compartilhada (Leis de Incentivo + Parceiros Educacionais) */
.ap-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: var(--semantics-spacing-big);
}

.ap-list__item {
    display: flex;
    align-items: center;
    gap: var(--semantics-spacing-medium);
    padding: var(--semantics-spacing-medium) 0;
    border-bottom: var(--semantics-stroke-thin) solid var(--semantics-colors-stroke-secondary);
    font-family: var(--semantics-typography-family-inter);
    font-weight: 500;
    font-size: var(--semantics-typography-body-14);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-primary);
}

.ap-list__dot {
    width: 6px;
    height: 6px;
    border-radius: var(--semantics-radius-full);
    background-color: var(--semantics-colors-fill-accent-purpura);
    flex-shrink: 0;
}

/* ----- CTA Final card (dentro da seção gov) ----- */
.ap-cta-card {
    background-color: var(--semantics-colors-fill-accent-petunia);
    color: var(--semantics-colors-text-on-dark);
    border-radius: var(--semantics-radius-big);
    padding: var(--semantics-spacing-broad) var(--semantics-padding-broad);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--semantics-spacing-bigger);
    text-align: center;
}

.ap-cta-card__title {
    font-family: var(--semantics-typography-family-poppins);
    font-weight: 700;
    font-size: var(--semantics-typography-heading-large);
    line-height: var(--semantics-typography-baseline-tight);
    letter-spacing: var(--semantics-typography-tracking-tight-1);
    color: var(--semantics-colors-text-on-dark);
    margin: 0;
    max-width: 700px;
}

.ap-cta-card__desc {
    font-family: var(--semantics-typography-family-inter);
    font-weight: 400;
    font-size: var(--semantics-typography-body-18);
    line-height: var(--semantics-typography-baseline-normal);
    color: var(--semantics-colors-text-on-dark);
    margin: 0;
    max-width: 800px;
}

/* ====================================================================
   Responsivo (576/768/1024)
   ==================================================================== */
@media (max-width: 1024px) {
    .ap-hero__inner {
        flex-direction: column;
        padding: 0 var(--semantics-spacing-large);
        gap: 0;
        align-items: center;
    }

    .ap-hero__content {
        flex: 0 0 auto;
        width: 100%;
        max-width: 540px;
        padding-bottom: var(--semantics-spacing-broad);
        align-items: center;
        text-align: center;
        margin: 0 auto;
    }

    .ap-hero__image {
        flex: 0 0 auto;
        width: calc(100% + var(--semantics-spacing-large) * 2);
        margin-left: calc(var(--semantics-spacing-large) * -1);
        margin-right: calc(var(--semantics-spacing-large) * -1);
        height: 420px;
    }

    .ap-como__cards {
        grid-template-columns: 1fr;
    }

    .ap-turmas__row {
        grid-template-columns: 1fr;
    }

    .ap-gov__grid,
    .ap-tier__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .ap-hero__title {
        font-size: var(--semantics-typography-heading-xx-large);
    }

    .ap-hero__content {
        padding-top: var(--semantics-spacing-broad);
    }

    .ap-como__title,
    .ap-turmas__title,
    .ap-parceiros__title {
        font-size: var(--semantics-typography-heading-large);
    }

    .ap-depoimentos__title {
        font-size: var(--semantics-typography-heading-large);
    }

    .ap-cta-card__title {
        font-size: var(--semantics-typography-heading-small);
    }

    .ap-cta-card {
        padding: var(--semantics-spacing-bigger) var(--semantics-spacing-bigger);
    }

    .ap-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .ap-gov__grid,
    .ap-tier__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ap-depoimentos__swiper .swiper-slide {
        width: 90%;
    }

    .ap-depoimento {
        min-height: 280px;
    }
}

@media (max-width: 576px) {
    .ap-hero__inner {
        align-items: flex-start;
    }

    .ap-hero__content {
        align-items: flex-start;
        text-align: left;
        margin: 0;
    }

    .ap-hero__title {
        font-size: var(--semantics-typography-heading-xx-large);
    }

    .ap-hero__title br {
        display: none;
    }

    .ap-hero__image {
        height: 320px;
    }

    .ap-como,
    .ap-turmas,
    .ap-parceiros,
    .ap-gov {
        padding: var(--semantics-padding-bigger) 0;
    }

    .ap-depoimentos {
        padding: var(--semantics-padding-broad) 0;
    }

    .ap-list {
        grid-template-columns: 1fr;
    }

    .ap-gov__grid,
    .ap-tier__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ap-como__title,
    .ap-turmas__title,
    .ap-parceiros__title,
    .ap-cta-card__title,
    .ap-depoimentos__title {
        font-size: var(--semantics-typography-heading-small);
    }

    .ap-logo {
        height: 100px;
    }
}
