/*
 * Acorremar: visual novo (carregado depois do style.css do template)
 * Cores da marca: vermelho do logo, amarelo das camisetas, preto.
 */
:root {
    --ac-vermelho: #ee343c;
    --ac-vermelho-escuro: #c9222a;
    --ac-amarelo: #ffe234;
    --ac-preto: #141414;
    --ac-grafite: #2a2a2a;
    --ac-cinza: #6d6d6d;
    --ac-cinza-claro: #f3f3f1;
    --ac-borda: #e2e2de;
    --ac-branco: #ffffff;
    --ac-raio: 14px;
    --ac-fonte-titulo: 'Barlow Condensed', 'Montserrat', sans-serif;
    --ac-fonte-texto: 'Montserrat', sans-serif;
}

/* ========================================================================
   Calculadora de corrida
   ======================================================================== */
.calc {
    margin: 40px 0 60px;
    border-radius: var(--ac-raio);
    overflow: hidden;
    background: var(--ac-branco);
    box-shadow: 0 10px 40px rgba(0, 0, 0, .08);
    border: 1px solid var(--ac-borda);
}

.calc__head {
    position: relative;
    padding: 28px 32px 24px;
    background: var(--ac-preto);
    color: var(--ac-branco);
    overflow: hidden;
}

/* Faixa diagonal amarela, lembrando linha de chegada */
.calc__head::after {
    content: '';
    position: absolute;
    top: 0;
    right: -40px;
    width: 220px;
    height: 100%;
    background: repeating-linear-gradient(-60deg, var(--ac-amarelo) 0 14px, transparent 14px 28px);
    opacity: .9;
    clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%);
}

.calc__eyebrow {
    display: inline-block;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ac-amarelo);
}

.calc__title {
    margin: 4px 0 6px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-size: 40px;
    line-height: 1;
    text-transform: uppercase;
    font-style: italic;
    color: var(--ac-branco);
}

.calc__lead {
    position: relative;
    z-index: 1;
    margin: 0;
    max-width: 520px;
    color: rgba(255, 255, 255, .75);
    font-size: 15px;
}

/* Escolha do que calcular */
.calc__modes {
    display: flex;
    gap: 8px;
    padding: 20px 32px 0;
    flex-wrap: wrap;
}

.calc__modes-label {
    width: 100%;
    margin: 0 0 2px;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ac-cinza);
}

.calc__mode {
    flex: 1 1 0;
    min-width: 120px;
    margin: 0;
    padding: 12px 14px;
    border: 2px solid var(--ac-borda);
    border-radius: 10px;
    background: var(--ac-branco);
    color: var(--ac-grafite);
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 20px;
    text-transform: uppercase;
    letter-spacing: .03em;
    line-height: 1.1;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}

.calc__mode small {
    display: block;
    font-family: var(--ac-fonte-texto);
    font-weight: 500;
    font-size: 12px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ac-cinza);
}

.calc__mode:hover {
    border-color: var(--ac-preto);
}

.calc__mode[aria-pressed="true"] {
    border-color: var(--ac-vermelho);
    background: var(--ac-vermelho);
    color: var(--ac-branco);
}

.calc__mode[aria-pressed="true"] small {
    color: rgba(255, 255, 255, .85);
}

.calc__mode:focus-visible,
.calc__chip:focus-visible,
.calc__unit input:focus-visible {
    outline: 3px solid var(--ac-amarelo);
    outline-offset: 2px;
}

/* Corpo: entradas à esquerda, resultado à direita */
.calc__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px;
    padding: 24px 32px 32px;
}

.calc__field {
    margin-bottom: 22px;
}

.calc__field[hidden] {
    display: none;
}

.calc__label {
    display: block;
    margin-bottom: 8px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ac-preto);
}

.calc__label .mdi {
    color: var(--ac-vermelho);
    margin-right: 4px;
}

.calc__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.calc__chip {
    margin: 0;
    padding: 6px 12px;
    border: 1px solid var(--ac-borda);
    border-radius: 999px;
    background: var(--ac-cinza-claro);
    color: var(--ac-grafite);
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.calc__chip:hover {
    border-color: var(--ac-preto);
}

.calc__chip[aria-pressed="true"] {
    background: var(--ac-amarelo);
    border-color: var(--ac-amarelo);
    color: var(--ac-preto);
}

/* Caixas de número (h / min / s, km) */
.calc__units {
    display: flex;
    align-items: flex-end;
    gap: 6px;
}

.calc__unit {
    flex: 1 1 0;
    max-width: 110px;
}

.calc__unit--wide {
    max-width: 180px;
}

.calc__unit input {
    width: 100%;
    height: 56px;
    padding: 0 10px;
    border: 2px solid var(--ac-borda);
    border-radius: 10px;
    background: var(--ac-branco);
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 30px;
    text-align: center;
    color: var(--ac-preto);
    transition: border-color .15s;
}

.calc__unit input::placeholder {
    color: #c9c9c4;
}

.calc__unit input:focus {
    border-color: var(--ac-preto);
    outline: none;
}

.calc__unit input[aria-invalid="true"] {
    border-color: var(--ac-vermelho);
}

.calc__unit span {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    text-transform: uppercase;
    color: var(--ac-cinza);
}

.calc__sep {
    padding-bottom: 30px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 30px;
    color: #b5b5b0;
}

.calc__suffix {
    padding-bottom: 32px;
    font-weight: 600;
    color: var(--ac-cinza);
}

/* Resultado */
.calc__result {
    display: flex;
    flex-direction: column;
    padding: 24px;
    border-radius: var(--ac-raio);
    background: var(--ac-cinza-claro);
}

.calc__result-label {
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ac-cinza);
}

.calc__result-value {
    margin: 2px 0 4px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: 76px;
    line-height: 1;
    color: var(--ac-preto);
    font-variant-numeric: tabular-nums;
}

.calc__result-value small {
    display: inline;
    margin-left: 6px;
    font-size: 26px;
    font-style: normal;
    color: var(--ac-cinza);
}

.calc__result-value.is-empty {
    color: #c9c9c4;
}

.calc__result-sub {
    min-height: 22px;
    font-weight: 600;
    color: var(--ac-grafite);
}

.calc__msg {
    margin-top: 8px;
    font-size: 14px;
    color: var(--ac-cinza);
}

.calc__msg.is-erro {
    color: var(--ac-vermelho-escuro);
    font-weight: 600;
}

.calc__previsao {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--ac-borda);
}

.calc__previsao[hidden] {
    display: none;
}

.calc__previsao-titulo {
    margin: 0 0 8px;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ac-cinza);
}

.calc__previsao table {
    width: 100%;
    border-collapse: collapse;
}

.calc__previsao td {
    padding: 7px 0;
    border-bottom: 1px dashed var(--ac-borda);
    color: var(--ac-grafite);
}

.calc__previsao td:last-child {
    text-align: right;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 20px;
    color: var(--ac-preto);
    font-variant-numeric: tabular-nums;
}

.calc__previsao tr:last-child td {
    border-bottom: 0;
}

.calc__limpar {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 4px 0 0;
    padding: 12px 20px;
    border: 2px solid var(--ac-preto);
    border-radius: 10px;
    background: var(--ac-branco);
    color: var(--ac-preto);
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: .04em;
    cursor: pointer;
    transition: background .15s, color .15s;
}

.calc__limpar:hover {
    background: var(--ac-preto);
    color: var(--ac-branco);
}

.calc__limpar:focus-visible {
    outline: 3px solid var(--ac-amarelo);
    outline-offset: 2px;
}

@media (max-width: 767px) {
    .calc {
        margin: 24px 0 40px;
    }

    .calc__head,
    .calc__modes,
    .calc__body {
        padding-left: 18px;
        padding-right: 18px;
    }

    .calc__head::after {
        width: 110px;
        opacity: .5;
    }

    /* No celular tudo fica mais compacto para o resultado caber na tela */
    .calc__head {
        padding-top: 16px;
        padding-bottom: 14px;
    }

    .calc__eyebrow {
        font-size: 12px;
    }

    .calc__title {
        margin: 2px 0 0;
        font-size: 28px;
    }

    .calc__lead {
        display: none;
    }

    .calc__modes {
        padding-top: 14px;
        gap: 6px;
    }

    .calc__modes-label {
        display: none;
    }

    .calc__mode {
        min-width: 0;
        padding: 8px 6px;
        font-size: 17px;
    }

    .calc__mode small {
        display: none;
    }

    /* "Limpar" vira um botão pequeno no canto, na linha do primeiro rótulo */
    .calc__body {
        position: relative;
        grid-template-columns: 1fr;
        gap: 4px;
        padding-top: 16px;
        padding-bottom: 18px;
    }

    .calc__limpar {
        position: absolute;
        top: 12px;
        right: 18px;
        margin: 0;
        padding: 4px 10px;
        border-width: 1px;
        border-radius: 8px;
        font-size: 14px;
    }

    .calc__field {
        margin-bottom: 12px;
    }

    .calc__label {
        margin-bottom: 6px;
        font-size: 16px;
    }

    /* Atalhos de distância numa linha só, com rolagem lateral */
    .calc__chips {
        flex-wrap: nowrap;
        overflow-x: auto;
        margin: 0 -18px 8px;
        padding: 0 18px;
        scrollbar-width: none;
    }

    .calc__chips::-webkit-scrollbar {
        display: none;
    }

    .calc__chip {
        flex: 0 0 auto;
        padding: 5px 11px;
    }

    .calc__unit input {
        height: 46px;
        font-size: 24px;
    }

    .calc__unit span {
        margin-top: 2px;
        font-size: 11px;
    }

    .calc__sep {
        padding-bottom: 22px;
        font-size: 24px;
    }

    .calc__suffix {
        padding-bottom: 24px;
    }

    .calc__result {
        padding: 14px 16px;
    }

    .calc__result-value {
        font-size: 48px;
    }

    .calc__result-value small {
        font-size: 20px;
    }

    .calc__result-sub {
        min-height: 0;
    }

    .calc__msg {
        margin-top: 4px;
        font-size: 13px;
    }

    .calc__previsao {
        margin-top: 12px;
        padding-top: 10px;
    }

    .calc__previsao td {
        padding: 4px 0;
        font-size: 14px;
    }

    .calc__previsao td:last-child {
        font-size: 18px;
    }
}

/* ========================================================================
   Cabeçalho (sobrescreve o rd-navbar do template)
   ======================================================================== */
.ac-nav .rd-nav-link {
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* Faixa diagonal amarela/preta sob o cabeçalho */
.ac-header .rd-navbar-static .rd-navbar-main-outer::before,
.ac-header .rd-navbar-fixed .rd-navbar-panel::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -5px;
    height: 5px;
    background: repeating-linear-gradient(-60deg, var(--ac-amarelo) 0 10px, var(--ac-preto) 10px 20px);
    pointer-events: none;
}

/* Antes do script do template escolher o layout, o menu fica em linha e
   alarga a página no celular (o que faz o script escolher o layout de desktop) */
.ac-nav:not(.rd-navbar-static):not(.rd-navbar-fixed) .rd-navbar-nav-wrap {
    display: none;
}

/* O script mede a altura antes da fonte carregar; o menu static fica no fluxo */
.ac-header .rd-navbar-wrap {
    height: auto !important;
}

/* --- Desktop (layout static do template) --- */
.ac-nav.rd-navbar-classic.rd-navbar-static {
    min-height: 0;
}

.ac-nav.rd-navbar-classic.rd-navbar-static .rd-navbar-main-outer,
.ac-nav.rd-navbar-classic.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main-outer,
.ac-nav.rd-navbar-classic.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main-outer {
    background: var(--ac-preto);
    border-bottom: 0;
}

.ac-nav.rd-navbar-classic.rd-navbar-static .rd-navbar-main-outer::after,
.ac-nav.rd-navbar-classic.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main-outer::after,
.ac-nav.rd-navbar-classic.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main-outer::after {
    background: var(--ac-preto);
    opacity: 1;
}

.ac-nav.rd-navbar-classic.rd-navbar-static .rd-navbar-main {
    max-width: 1320px;
    padding: 18px 0;
}

.ac-nav.rd-navbar-classic.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main,
.ac-nav.rd-navbar-classic.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main {
    padding: 14px 0;
}

.ac-nav.rd-navbar-classic.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main-outer,
.ac-nav.rd-navbar-classic.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main-outer {
    transform: none;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .35);
}

.ac-nav.rd-navbar-static .rd-navbar-brand img {
    width: 200px;
    height: auto;
}

/* Sem flex aqui: o script aplica este layout por um instante ao carregar, e uma
   linha que não quebra alarga a página no celular, prendendo o layout de desktop */
.ac-nav.rd-navbar-static .rd-nav-item {
    vertical-align: middle;
}

.ac-nav.rd-navbar-static .rd-nav-item + .rd-nav-item {
    margin-left: 22px;
}

.ac-nav.rd-navbar-static .rd-nav-link,
.context-dark .ac-nav.rd-navbar-static .rd-nav-link {
    padding: 8px 0;
    font-size: 18px;
    color: var(--ac-branco);
}

.ac-nav.rd-navbar-static .rd-nav-link:hover,
.ac-nav.rd-navbar-static .rd-nav-item.active .rd-nav-link {
    color: var(--ac-amarelo);
}

.ac-nav.rd-navbar-static .rd-nav-link::after {
    background: var(--ac-amarelo);
}

/* Botão de destaque "Área do atleta" */
.ac-nav.rd-navbar-static .ac-nav__cta .rd-nav-link,
.context-dark .ac-nav.rd-navbar-static .ac-nav__cta .rd-nav-link {
    padding: 10px 18px;
    border-radius: 8px;
    background: var(--ac-vermelho);
    color: var(--ac-branco);
    transition: background .15s;
}

.ac-nav.rd-navbar-static .ac-nav__cta .rd-nav-link::after {
    display: none;
}

.ac-nav.rd-navbar-static .ac-nav__cta .rd-nav-link:hover,
.ac-nav.rd-navbar-static .ac-nav__cta.active .rd-nav-link {
    background: var(--ac-vermelho-escuro);
    color: var(--ac-branco);
}

.ac-nav__cta .mdi {
    margin-right: 2px;
}

/* Telas médias: menu apertado */
@media (min-width: 1200px) and (max-width: 1399px) {
    .ac-nav.rd-navbar-static .rd-navbar-brand img {
        width: 170px;
    }

    .ac-nav.rd-navbar-static .rd-nav-item + .rd-nav-item {
        margin-left: 16px;
    }

    .ac-nav.rd-navbar-static .rd-nav-link,
    .context-dark .ac-nav.rd-navbar-static .rd-nav-link {
        font-size: 16px;
    }
}

/* --- Celular / tablet (layout fixed do template) --- */
.ac-nav__atalho {
    display: none;
}

.ac-header .ac-nav.rd-navbar-classic.rd-navbar-fixed .rd-navbar-panel {
    height: 60px;
    background: var(--ac-preto);
    border-bottom: 0;
}

.ac-nav.rd-navbar-fixed .rd-navbar-brand {
    flex: 1;
    margin-left: 10px;
}

.ac-nav.rd-navbar-fixed .rd-navbar-brand img {
    width: 150px;
    max-height: none;
}

.ac-nav.rd-navbar-fixed .ac-nav__atalho {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 40px;
    padding: 0 12px;
    border-radius: 8px;
    background: var(--ac-vermelho);
    color: var(--ac-branco);
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 17px;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.ac-nav.rd-navbar-fixed .ac-nav__atalho .mdi {
    font-size: 20px;
}

.ac-nav.rd-navbar-fixed .rd-navbar-nav-wrap {
    top: 0;
    bottom: 0;
    width: min(300px, 85vw);
    padding: 76px 0 40px;
    background: var(--ac-preto);
    border: 0;
    box-shadow: 8px 0 30px rgba(0, 0, 0, .4);
}

.ac-nav.rd-navbar-fixed .rd-nav-item + .rd-nav-item {
    margin-top: 0;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.ac-nav.rd-navbar-fixed .rd-nav-link {
    padding: 14px 24px;
    font-size: 20px;
    line-height: 1.2;
    color: var(--ac-branco);
}

.ac-nav.rd-navbar-fixed .rd-nav-item:hover .rd-nav-link,
.ac-nav.rd-navbar-fixed .rd-nav-item.active .rd-nav-link {
    background: transparent;
    color: var(--ac-amarelo);
    box-shadow: inset 4px 0 0 var(--ac-amarelo);
}

.ac-nav.rd-navbar-fixed .ac-nav__cta .rd-nav-link,
.ac-nav.rd-navbar-fixed .ac-nav__cta:hover .rd-nav-link,
.ac-nav.rd-navbar-fixed .ac-nav__cta.active .rd-nav-link {
    margin: 12px 20px 0;
    border-radius: 8px;
    background: var(--ac-vermelho);
    color: var(--ac-branco);
    box-shadow: none;
    text-align: center;
}

html.rd-navbar-fixed-linked .page {
    padding-top: 65px;
}

/* ========================================================================
   Rodapé
   ======================================================================== */
.ac-footer {
    position: relative;
    background: var(--ac-preto);
    color: rgba(255, 255, 255, .72);
    font-size: 15px;
}

.ac-footer__faixa {
    height: 8px;
    background: repeating-linear-gradient(-60deg, var(--ac-amarelo) 0 12px, var(--ac-preto) 12px 24px);
}

.ac-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 40px;
    padding: 56px 0 44px;
}

.ac-footer__marca img {
    width: 210px;
    height: auto;
}

.ac-footer__marca p {
    margin: 18px 0 20px;
    max-width: 340px;
    line-height: 1.6;
}

.ac-footer__redes {
    display: flex;
    gap: 10px;
}

.ac-footer__redes a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    color: var(--ac-branco);
    font-size: 22px;
    transition: background .15s, color .15s;
}

.ac-footer__redes a:hover {
    background: var(--ac-amarelo);
    color: var(--ac-preto);
}

.ac-footer .ac-footer__titulo {
    margin: 0 0 16px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: 22px;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--ac-amarelo);
}

.ac-footer__lista {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ac-footer__lista li + li {
    margin-top: 10px;
}

.ac-footer .ac-footer__lista a {
    display: inline-flex;
    gap: 8px;
    color: rgba(255, 255, 255, .72);
    line-height: 1.5;
    transition: color .15s;
}

.ac-footer .ac-footer__lista a:hover {
    color: var(--ac-branco);
}

.ac-footer__lista .mdi {
    color: var(--ac-amarelo);
    font-size: 18px;
    line-height: 1.3;
}

.ac-footer__base {
    border-top: 1px solid rgba(255, 255, 255, .1);
    font-size: 13px;
}

.ac-footer__base .container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 6px 20px;
    padding-top: 18px;
    padding-bottom: 18px;
}

.ac-footer__base p {
    margin: 0;
    color: rgba(255, 255, 255, .5);
}

.ac-footer .ac-footer__base a {
    color: rgba(255, 255, 255, .7);
}

@media (max-width: 991px) {
    .ac-footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }

    .ac-footer__marca {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575px) {
    /* Marca e contato ocupam a linha toda; as duas listas de links ficam lado a lado */
    .ac-footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 28px 16px;
        padding: 40px 0 32px;
    }

    .ac-footer__marca,
    .ac-footer__col:nth-child(2) {
        grid-column: 1 / -1;
    }

    .ac-footer__lista li + li {
        margin-top: 0;
    }

    /* Alvos de toque maiores no celular */
    .ac-footer .ac-footer__lista a {
        padding: 8px 0;
    }

    /* Espaço para o botão "voltar ao topo" não cobrir o texto */
    .ac-footer__base .container {
        flex-direction: column;
        text-align: center;
        padding-bottom: 84px;
    }
}

/* ========================================================================
   Peças comuns (botões, títulos de seção)
   ======================================================================== */
.ac-botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 52px;
    padding: 12px 26px;
    border: 2px solid transparent;
    border-radius: 10px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 20px;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .04em;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

.ac-botao .mdi {
    font-size: 22px;
}

.ac-botao:focus-visible,
.ac-link:focus-visible,
.ac-card a:focus-visible,
.ac-galeria__item:focus-visible {
    outline: 3px solid var(--ac-amarelo);
    outline-offset: 3px;
}

.ac-botao--vermelho,
a.ac-botao--vermelho {
    background: var(--ac-vermelho);
    color: var(--ac-branco);
}

.ac-botao--vermelho:hover,
a.ac-botao--vermelho:hover {
    background: var(--ac-vermelho-escuro);
    color: var(--ac-branco);
}

.ac-botao--contorno,
a.ac-botao--contorno {
    border-color: rgba(255, 255, 255, .7);
    color: var(--ac-branco);
}

.ac-botao--contorno:hover,
a.ac-botao--contorno:hover {
    border-color: var(--ac-branco);
    background: var(--ac-branco);
    color: var(--ac-preto);
}

.ac-botao--amarelo,
a.ac-botao--amarelo {
    background: var(--ac-amarelo);
    color: var(--ac-preto);
}

.ac-botao--amarelo:hover,
a.ac-botao--amarelo:hover {
    background: var(--ac-branco);
    color: var(--ac-preto);
}

.ac-botao--largo {
    width: 100%;
}

.ac-eyebrow {
    margin: 0 0 6px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ac-vermelho);
}

.ac-eyebrow--amarelo {
    color: var(--ac-amarelo);
}

.ac-eyebrow--centro,
.ac-titulo--centro {
    text-align: center;
}

h2.ac-titulo,
.ac-titulo {
    margin: 0 0 18px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: clamp(36px, 5vw, 54px);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0;
    color: var(--ac-preto);
}

.ac-link,
a.ac-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 19px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ac-vermelho);
}

.ac-link:hover {
    color: var(--ac-preto);
}

.ac-link .mdi {
    transition: transform .15s;
}

.ac-link:hover .mdi {
    transform: translateX(4px);
}

.ac-secao {
    padding: 96px 0;
    background: var(--ac-branco);
}

.ac-secao--cinza {
    background: var(--ac-cinza-claro);
}

.ac-secao--compacta {
    padding: 72px 0;
}

.ac-secao__topo {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8px 24px;
    margin-bottom: 36px;
}

.ac-secao__topo .ac-titulo {
    margin-bottom: 0;
}

/* ========================================================================
   Página inicial
   ======================================================================== */

/* Banner: a foto original já vem com filtro amarelo; aqui vira preto e branco
   com sombra escura à esquerda para o texto aparecer bem */
.ac-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: min(78vh, 760px);
    padding: 96px 0 88px;
    overflow: hidden;
    background: var(--ac-preto);
}

.ac-hero__foto {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 70% center;
    filter: grayscale(1) contrast(1.15) brightness(.9);
}

.ac-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(20, 20, 20, .95) 0%, rgba(20, 20, 20, .8) 38%, rgba(20, 20, 20, .15) 75%);
}

/* Faixa diagonal na base do banner */
.ac-hero::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    height: 10px;
    background: repeating-linear-gradient(-60deg, var(--ac-amarelo) 0 14px, var(--ac-preto) 14px 28px);
}

.ac-hero__conteudo {
    position: relative;
    z-index: 3;
}

.ac-hero__eyebrow {
    display: inline-block;
    margin: 0 0 18px;
    padding: 6px 12px;
    background: var(--ac-amarelo);
    color: var(--ac-preto);
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ac-hero h1.ac-hero__titulo {
    max-width: 760px;
    margin: 0;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: clamp(50px, 8vw, 108px);
    line-height: .92;
    letter-spacing: -.01em;
    text-transform: uppercase;
    color: var(--ac-branco);
}

.ac-hero__titulo span {
    color: var(--ac-amarelo);
}

.ac-hero p.ac-hero__texto {
    max-width: 520px;
    margin: 22px 0 0;
    font-size: 18px;
    line-height: 1.55;
    color: rgba(255, 255, 255, .82);
}

.ac-hero__acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

/* Faixa amarela de números */
.ac-numeros {
    background: var(--ac-amarelo);
    color: var(--ac-preto);
}

.ac-numeros__lista {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.ac-numeros__lista li {
    padding: 30px 24px;
}

.ac-numeros__lista li + li {
    border-left: 2px solid rgba(20, 20, 20, .12);
}

.ac-numeros__lista strong {
    display: block;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: 38px;
    line-height: 1;
    text-transform: uppercase;
}

.ac-numeros__lista span {
    display: block;
    margin-top: 6px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
}

/* Quem somos */
.ac-sobre {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 72px;
    align-items: center;
}

.ac-sobre__foto {
    position: relative;
}

.ac-sobre__foto img {
    display: block;
    width: 100%;
    max-height: 560px;
    object-fit: cover;
    border-radius: var(--ac-raio);
}

.ac-sobre__selo {
    position: absolute;
    right: -24px;
    bottom: 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 128px;
    height: 128px;
    border: 6px solid var(--ac-branco);
    border-radius: 50%;
    background: var(--ac-vermelho);
    color: var(--ac-branco);
    font-family: var(--ac-fonte-titulo);
    font-style: italic;
    text-transform: uppercase;
    transform: rotate(-8deg);
}

.ac-sobre__selo strong {
    font-weight: 800;
    font-size: 56px;
    line-height: .9;
}

.ac-sobre__selo span {
    font-weight: 700;
    font-size: 20px;
    letter-spacing: .08em;
}

.ac-sobre__texto p:not(.ac-eyebrow) {
    font-size: 17px;
    line-height: 1.7;
    color: var(--ac-grafite);
}

.ac-sobre__texto .ac-link {
    margin-top: 12px;
}

/* Cards de notícias */
.ac-noticias {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.ac-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: var(--ac-raio);
    background: var(--ac-branco);
    box-shadow: 0 6px 24px rgba(0, 0, 0, .06);
    transition: transform .2s, box-shadow .2s;
}

.ac-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .12);
}

.ac-card__foto {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--ac-borda);
}

.ac-card__foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s;
}

.ac-card:hover .ac-card__foto img {
    transform: scale(1.05);
}

.ac-card__corpo {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 20px 22px 24px;
}

.ac-card__data {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ac-vermelho);
}

.ac-card .ac-card__titulo {
    margin: 8px 0 10px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 22px;
    line-height: 1.1;
    text-transform: uppercase;
    /* Títulos longos (alguns vêm todo em maiúsculas) ficam em 3 linhas */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ac-card__titulo a {
    color: var(--ac-preto);
}

/* O link do título cobre o card inteiro */
.ac-card {
    position: relative;
}

.ac-card__titulo a::after {
    content: '';
    position: absolute;
    inset: 0;
}

.ac-card__titulo a:hover {
    color: var(--ac-vermelho);
}

.ac-card p.ac-card__resumo {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--ac-cinza);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Galeria */
.ac-galeria {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ac-galeria__item {
    position: relative;
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: var(--ac-raio);
    background: var(--ac-preto);
}

.ac-galeria__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s, opacity .4s;
}

.ac-galeria__item:hover img {
    transform: scale(1.06);
    opacity: .85;
}

.ac-galeria__legenda {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 48px 18px 16px;
    background: linear-gradient(transparent, rgba(0, 0, 0, .85));
    color: var(--ac-branco);
}

.ac-galeria__titulo {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 20px;
    line-height: 1.1;
    text-transform: uppercase;
}

.ac-galeria__data {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ac-amarelo);
}

/* Chamada da calculadora */
.ac-chamada {
    position: relative;
    overflow: hidden;
    padding: 64px 0;
    background: var(--ac-preto);
}

.ac-chamada::after {
    content: '';
    position: absolute;
    top: 0;
    right: -60px;
    width: 340px;
    height: 100%;
    background: repeating-linear-gradient(-60deg, var(--ac-amarelo) 0 18px, transparent 18px 36px);
    opacity: .14;
    clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%);
}

.ac-chamada__conteudo {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px 48px;
}

.ac-chamada h2.ac-chamada__titulo {
    margin: 0;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: clamp(34px, 4.4vw, 50px);
    line-height: 1;
    text-transform: uppercase;
    color: var(--ac-branco);
}

.ac-chamada p.ac-chamada__texto {
    max-width: 560px;
    margin: 10px 0 0;
    color: rgba(255, 255, 255, .75);
}

/* Patrocinadores */
.ac-patrocinadores {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}

.ac-patrocinadores li {
    width: calc((100% - 4 * 12px) / 5);
}

/* Patrocinador ainda sem logo: nome no lugar da imagem, na mesma proporção */
.ac-patrocinadores__nome {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 400 / 217;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 19px;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: .03em;
    text-align: center;
    color: var(--ac-grafite);
}

.ac-patrocinadores a {
    display: block;
    padding: 10px;
    border-radius: 10px;
    transition: background .15s;
}

.ac-patrocinadores img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter .2s, opacity .2s;
}

@media (hover: hover) {
    .ac-patrocinadores img {
        filter: grayscale(1);
        opacity: .7;
    }

    .ac-patrocinadores a:hover {
        background: var(--ac-cinza-claro);
    }

    .ac-patrocinadores a:hover img {
        filter: none;
        opacity: 1;
    }
}

/* Contato */
.ac-contato {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 64px;
    align-items: start;
}

.ac-contato__info > p:not(.ac-eyebrow) {
    font-size: 17px;
    line-height: 1.6;
    color: var(--ac-grafite);
}

.ac-contato__lista {
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}

.ac-contato__lista li {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.ac-contato__lista li + li {
    margin-top: 18px;
}

.ac-contato__lista .mdi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--ac-preto);
    color: var(--ac-amarelo);
    font-size: 20px;
}

.ac-contato__lista a {
    padding-top: 9px;
    color: var(--ac-preto);
    font-weight: 600;
    line-height: 1.45;
}

.ac-contato__lista a:hover {
    color: var(--ac-vermelho);
}

.ac-form {
    padding: 36px;
    border-radius: var(--ac-raio);
    background: var(--ac-branco);
    box-shadow: 0 10px 40px rgba(0, 0, 0, .07);
}

.ac-form__linha {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0 16px;
}

.ac-form__campo {
    margin-bottom: 18px;
}

.ac-form label {
    display: block;
    margin-bottom: 6px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 17px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ac-preto);
}

.ac-form input,
.ac-form textarea {
    display: block;
    width: 100%;
    padding: 13px 14px;
    border: 2px solid var(--ac-borda);
    border-radius: 10px;
    background: var(--ac-branco);
    font-family: var(--ac-fonte-texto);
    font-size: 16px; /* 16px evita o zoom automático do iPhone ao focar */
    color: var(--ac-preto);
    transition: border-color .15s;
}

.ac-form textarea {
    min-height: 140px;
    resize: vertical;
}

.ac-form input:focus,
.ac-form textarea:focus {
    border-color: var(--ac-preto);
    outline: none;
}

.ac-form .alert {
    margin-bottom: 20px;
    border-radius: 10px;
}

/* --- Home: tablet --- */
@media (max-width: 991px) {
    .ac-secao {
        padding: 72px 0;
    }

    .ac-numeros__lista {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ac-numeros__lista li:nth-child(3) {
        border-left: 0;
    }

    .ac-numeros__lista li:nth-child(n+3) {
        border-top: 2px solid rgba(20, 20, 20, .12);
    }

    .ac-sobre,
    .ac-contato {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .ac-sobre__foto {
        max-width: 460px;
    }

    .ac-sobre__selo {
        right: -12px;
    }

    .ac-noticias,
    .ac-galeria {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ac-patrocinadores li {
        width: calc((100% - 3 * 12px) / 4);
    }
}

/* --- Home: celular --- */
@media (max-width: 575px) {
    .ac-secao {
        padding: 56px 0;
    }

    .ac-hero {
        min-height: 0;
        padding: 64px 0 72px;
    }

    .ac-hero__foto {
        object-position: 62% center;
    }

    .ac-hero::before {
        background: linear-gradient(180deg, rgba(20, 20, 20, .55) 0%, rgba(20, 20, 20, .9) 70%);
    }

    .ac-hero__eyebrow {
        font-size: 13px;
    }

    .ac-hero p.ac-hero__texto {
        font-size: 16px;
    }

    .ac-hero__acoes .ac-botao {
        flex: 1 1 100%;
    }

    .ac-numeros__lista li {
        padding: 20px 14px;
    }

    .ac-numeros__lista strong {
        font-size: 28px;
    }

    .ac-numeros__lista span {
        font-size: 13px;
    }

    .ac-sobre__foto {
        margin-right: 12px;
    }

    .ac-sobre__foto img {
        max-height: 380px;
    }

    .ac-sobre__selo {
        width: 100px;
        height: 100px;
        border-width: 5px;
    }

    .ac-sobre__selo strong {
        font-size: 44px;
    }

    .ac-sobre__selo span {
        font-size: 16px;
    }

    .ac-sobre__texto p:not(.ac-eyebrow) {
        font-size: 16px;
    }

    /* Notícias em lista compacta: foto pequena ao lado do título */
    .ac-noticias {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .ac-card {
        flex-direction: row;
        align-items: stretch;
    }

    .ac-card:hover {
        transform: none;
    }

    .ac-card__foto {
        flex: none;
        width: 112px;
        aspect-ratio: auto;
    }

    .ac-card__corpo {
        padding: 14px 16px;
    }

    .ac-card .ac-card__titulo {
        margin: 4px 0 0;
        font-size: 19px;
    }

    .ac-card p.ac-card__resumo {
        display: none;
    }

    .ac-galeria {
        gap: 10px;
    }

    .ac-galeria__legenda {
        padding: 36px 12px 10px;
    }

    .ac-galeria__titulo {
        font-size: 16px;
    }

    .ac-chamada {
        padding: 48px 0;
    }

    .ac-chamada .ac-botao {
        width: 100%;
    }

    .ac-patrocinadores {
        gap: 8px;
    }

    .ac-patrocinadores li {
        width: calc((100% - 2 * 8px) / 3);
    }

    .ac-patrocinadores__nome {
        font-size: 14px;
    }

    .ac-patrocinadores a {
        padding: 4px;
    }

    .ac-form {
        padding: 22px 18px;
    }

    .ac-form__linha {
        grid-template-columns: 1fr;
    }
}

/* ========================================================================
   Páginas internas
   ======================================================================== */

/* Cabeçalho preto com faixa (substitui o banner com onda do template) */
.ac-topo {
    position: relative;
    overflow: hidden;
    padding: 64px 0 58px;
    background: var(--ac-preto);
}

.ac-topo::before {
    content: '';
    position: absolute;
    top: 0;
    right: -60px;
    width: 360px;
    height: 100%;
    background: repeating-linear-gradient(-60deg, var(--ac-amarelo) 0 18px, transparent 18px 36px);
    opacity: .12;
    clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%);
}

.ac-topo::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 8px;
    background: repeating-linear-gradient(-60deg, var(--ac-amarelo) 0 12px, var(--ac-preto) 12px 24px);
}

.ac-topo .container {
    position: relative;
    z-index: 1;
}

.ac-topo p.ac-topo__eyebrow {
    margin: 0 0 8px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ac-amarelo);
}

.ac-topo h1.ac-topo__titulo {
    max-width: 960px;
    margin: 0;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: clamp(42px, 6vw, 76px);
    line-height: .95;
    text-transform: uppercase;
    color: var(--ac-branco);
}

/* Títulos de notícia são longos: letra menor */
.ac-topo--artigo h1.ac-topo__titulo {
    font-size: clamp(30px, 4.2vw, 54px);
    line-height: 1;
}

.ac-topo a.ac-topo__voltar {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 16px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 17px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ac-amarelo);
}

.ac-topo a.ac-topo__voltar:hover {
    color: var(--ac-branco);
}

.ac-topo .ac-topo__data {
    display: block;
    margin: 16px 0 0;
    font-size: 15px;
    font-weight: 600;
    color: rgba(255, 255, 255, .7);
}

.ac-topo__data .mdi {
    color: var(--ac-amarelo);
}

.ac-vazio {
    font-size: 17px;
    color: var(--ac-grafite);
}

/* Listas de notícias e galerias: 3 por linha */
.ac-noticias--lista,
.ac-galeria--lista {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ac-noticias--lista {
    gap: 28px;
}

.ac-galeria__total {
    position: absolute;
    top: 12px;
    right: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(20, 20, 20, .75);
    color: var(--ac-branco);
    font-size: 13px;
    font-weight: 600;
}

.ac-paginacao {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 48px;
}

.ac-paginacao a,
.ac-paginacao span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    height: 46px;
    padding: 0 10px;
    border-radius: 10px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 20px;
}

.ac-paginacao a {
    border: 2px solid var(--ac-borda);
    background: var(--ac-branco);
    color: var(--ac-preto);
    transition: border-color .15s;
}

.ac-paginacao a:hover {
    border-color: var(--ac-preto);
    color: var(--ac-preto);
}

.ac-paginacao .is-atual {
    background: var(--ac-vermelho);
    color: var(--ac-branco);
}

.ac-paginacao .ac-paginacao__reticencias {
    min-width: 0;
    color: var(--ac-cinza);
}

/* Notícia aberta */
.ac-artigo__container {
    max-width: 820px;
    padding-top: 48px;
    padding-bottom: 72px;
}

.ac-artigo__foto {
    display: block;
    width: 100%;
    max-height: 520px;
    margin-bottom: 36px;
    object-fit: cover;
    border-radius: var(--ac-raio);
}

.ac-artigo__texto {
    font-size: 18px;
    line-height: 1.75;
    color: var(--ac-grafite);
    overflow-wrap: break-word;
}

.ac-artigo__texto p {
    margin: 0 0 1.2em;
}

.ac-artigo__texto * + p {
    margin-top: 0;
}

/* Imagens e tabelas coladas no editor não podem passar da tela */
.ac-artigo__texto img,
.ac-artigo__texto iframe,
.ac-artigo__texto video {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
}

.ac-artigo__texto table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}

.ac-artigo__texto a {
    color: var(--ac-vermelho);
    text-decoration: underline;
}

.ac-compartilhar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid var(--ac-borda);
}

.ac-compartilhar__rotulo {
    margin-right: 6px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.ac-compartilhar__botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--ac-preto);
    color: var(--ac-branco);
    font-size: 24px;
    cursor: pointer;
    transition: transform .15s;
}

a.ac-compartilhar__botao:hover,
.ac-compartilhar__botao:hover {
    transform: translateY(-2px);
    color: var(--ac-branco);
}

.ac-compartilhar__botao--whatsapp {
    background: #1fa855;
}

.ac-compartilhar__botao--facebook {
    background: #1877f2;
}

.ac-compartilhar__aviso {
    font-size: 14px;
    font-weight: 600;
    color: var(--ac-cinza);
}

/* Álbum de fotos */
.ac-secao--album {
    padding-top: 40px;
}

.ac-album__dica {
    margin: 0 0 16px;
    font-size: 14px;
    color: var(--ac-cinza);
}

.ac-album {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.ac-album__foto {
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 8px;
    background: var(--ac-cinza-claro);
}

.ac-album__foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}

.ac-album__foto:hover img {
    transform: scale(1.05);
}

.ac-album__voltar {
    margin: 36px 0 0;
}

@media (max-width: 991px) {
    .ac-noticias--lista,
    .ac-galeria--lista {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ac-album {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .ac-topo {
        padding: 40px 0 44px;
    }

    .ac-topo::before {
        width: 160px;
    }

    .ac-noticias--lista {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .ac-galeria--lista {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ac-galeria__total {
        top: 8px;
        right: 8px;
        padding: 2px 8px;
        font-size: 12px;
    }

    .ac-paginacao {
        margin-top: 32px;
        gap: 6px;
    }

    .ac-artigo__container {
        padding-top: 24px;
        padding-bottom: 48px;
    }

    .ac-artigo__foto {
        margin-bottom: 24px;
    }

    .ac-artigo__texto {
        font-size: 16px;
    }

    .ac-album {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 4px;
    }

    .ac-album__foto {
        border-radius: 4px;
    }
}

/* ========================================================================
   Área do atleta
   ======================================================================== */
.ac-secao--atleta {
    padding: 64px 0 80px;
}

.ac-secao--calc {
    padding: 24px 0 40px;
}

.ac-botao--escuro,
a.ac-botao--escuro {
    background: var(--ac-preto);
    color: var(--ac-branco);
}

.ac-botao--escuro:hover,
a.ac-botao--escuro:hover {
    background: var(--ac-grafite);
    color: var(--ac-branco);
}

.ac-botao:disabled {
    opacity: .6;
    cursor: wait;
}

/* Entrada (sem login) */
.ac-entrar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 64px;
    align-items: start;
}

.ac-entrar__intro > p:not(.ac-eyebrow) {
    font-size: 17px;
    line-height: 1.6;
    color: var(--ac-grafite);
}

.ac-entrar__lista {
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.ac-entrar__lista li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 600;
    color: var(--ac-preto);
}

.ac-entrar__lista li + li {
    margin-top: 12px;
}

.ac-entrar__lista .mdi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--ac-amarelo);
    color: var(--ac-preto);
    font-size: 19px;
}

.ac-entrar__form {
    border-top: 6px solid var(--ac-vermelho);
}

.ac-passo {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
}

.ac-passo__numero {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--ac-preto);
    color: var(--ac-amarelo);
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-size: 18px;
}

.ac-passo .ac-passo__titulo {
    color: var(--ac-preto);
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: 24px;
    text-transform: uppercase;
}

.ac-form input.ac-codigo {
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 34px;
    letter-spacing: .35em;
    text-align: center;
}

.ac-entrar__trocar {
    display: block;
    width: 100%;
    margin: 14px 0 0;
    padding: 8px;
    border: 0;
    background: none;
    color: var(--ac-cinza);
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
}

.ac-entrar__trocar:hover {
    color: var(--ac-preto);
}

.ac-mensagem {
    margin-top: 16px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--ac-cinza);
}

.ac-mensagem:empty {
    display: none;
}

.ac-mensagem--ok,
.ac-mensagem--erro {
    padding: 12px 14px;
    border-radius: 10px;
    font-weight: 600;
}

.ac-mensagem--ok {
    background: #e6f6ea;
    color: #1d6b34;
}

.ac-mensagem--erro {
    background: #fde8e9;
    color: var(--ac-vermelho-escuro);
}

/* Avisos (atestado, cadastro pendente, erros do formulário) */
.ac-aviso {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 24px;
    padding: 18px 20px;
    border-radius: var(--ac-raio);
    border-left: 6px solid;
}

.ac-aviso > .mdi {
    font-size: 26px;
    line-height: 1;
}

.ac-aviso strong {
    display: block;
    color: var(--ac-preto);
}

.ac-aviso p,
.ac-aviso ul {
    margin: 6px 0 0;
    color: var(--ac-grafite);
}

.ac-aviso ul {
    padding-left: 18px;
}

.ac-aviso .ac-botao {
    margin-top: 14px;
}

.ac-aviso--ok {
    background: #e6f6ea;
    border-color: #2f9e4f;
    color: #2f9e4f;
}

.ac-aviso--alerta {
    background: #fff8d6;
    border-color: #e0b800;
    color: #b38f00;
}

.ac-aviso--erro {
    background: #fde8e9;
    border-color: var(--ac-vermelho);
    color: var(--ac-vermelho);
}

/* Painel (logado) */
.ac-painel__topo {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 24px;
    margin-bottom: 28px;
}

.ac-painel__topo .ac-titulo {
    margin-bottom: 8px;
}

.ac-painel__email {
    margin: 0;
    color: var(--ac-cinza);
    overflow-wrap: anywhere;
}

.ac-painel__acoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 24px;
}

.ac-ficha {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.ac-ficha__bloco {
    padding: 22px 24px;
    border: 1px solid var(--ac-borda);
    border-radius: var(--ac-raio);
    background: var(--ac-branco);
}

.ac-ficha .ac-ficha__titulo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: 22px;
    text-transform: uppercase;
    color: var(--ac-preto);
}

.ac-ficha__titulo .mdi {
    color: var(--ac-vermelho);
    font-style: normal;
}

.ac-ficha dl {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px 16px;
    margin: 0;
}

.ac-ficha dt {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ac-cinza);
    padding-top: 2px;
}

.ac-ficha dd {
    margin: 0;
    font-weight: 600;
    color: var(--ac-preto);
    overflow-wrap: anywhere;
}

.ac-ficha dd a {
    color: var(--ac-vermelho);
}

.ac-ficha__vazio {
    color: #b5b5b0;
}

.ac-selo {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}

.ac-selo--ok {
    background: #e6f6ea;
    color: #1d6b34;
}

.ac-selo--alerta {
    background: #fff3b8;
    color: #7a6100;
}

.ac-selo--erro {
    background: #fde8e9;
    color: var(--ac-vermelho-escuro);
}

/* Formulário de cadastro */
.ac-secao--cadastro {
    padding: 48px 0 80px;
}

.ac-cadastro {
    max-width: 880px;
    margin: 0 auto;
}

.ac-cadastro__legenda {
    margin: 0 0 16px;
    color: var(--ac-cinza);
}

.ac-obrigatorio {
    color: var(--ac-vermelho);
}

.ac-bloco {
    min-width: 0;
    margin: 0 0 20px;
    padding: 24px 28px 8px;
    border: 0;
    border-radius: var(--ac-raio);
    background: var(--ac-branco);
    box-shadow: 0 6px 24px rgba(0, 0, 0, .05);
}

.ac-bloco legend {
    float: left;
    width: 100%;
    margin: 0 0 18px;
    padding: 0;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: 26px;
    text-transform: uppercase;
    color: var(--ac-preto);
}

.ac-bloco legend .mdi {
    color: var(--ac-vermelho);
    font-style: normal;
}

.ac-bloco legend + * {
    clear: both;
}

.ac-campos {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0 18px;
}

.ac-campos__inteiro {
    grid-column: 1 / -1;
}

.ac-cadastro label small {
    font-family: var(--ac-fonte-texto);
    font-weight: 500;
    font-size: 12px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ac-cinza);
}

.ac-cadastro .ac-rotulo {
    display: block;
    margin-bottom: 6px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 17px;
    text-transform: uppercase;
    letter-spacing: .04em;
    line-height: 1.2;
    color: var(--ac-preto);
}

/* Reaproveita o visual dos campos do formulário de contato */
.ac-cadastro input,
.ac-cadastro select,
.ac-cadastro textarea {
    display: block;
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    border: 2px solid var(--ac-borda);
    border-radius: 10px;
    background: var(--ac-branco);
    font-family: var(--ac-fonte-texto);
    font-size: 16px;
    color: var(--ac-preto);
    transition: border-color .15s;
}

.ac-cadastro label {
    display: block;
    margin-bottom: 6px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 17px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ac-preto);
}

.ac-cadastro input:focus,
.ac-cadastro select:focus,
.ac-cadastro textarea:focus {
    border-color: var(--ac-preto);
    outline: none;
}

.ac-cadastro input[readonly] {
    background: var(--ac-cinza-claro);
    color: var(--ac-cinza);
}

.ac-dica {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    color: var(--ac-cinza);
}

.ac-opcoes {
    display: flex;
    gap: 8px;
}

.ac-cadastro label.ac-opcao {
    flex: 1;
    margin: 0;
    cursor: pointer;
}

.ac-cadastro label.ac-opcao {
    position: relative;
}

/* O radio fica escondido; o botão é o span com o texto. O script do template
   acrescenta um .radio-custom-dummy depois de cada radio, que aqui não aparece */
.ac-cadastro .ac-opcao input {
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 1px;
    min-height: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

.ac-opcao .radio-custom-dummy {
    display: none;
}

.ac-opcao span:not(.radio-custom-dummy) {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 8px 12px;
    border: 2px solid var(--ac-borda);
    border-radius: 10px;
    background: var(--ac-branco);
    font-family: var(--ac-fonte-texto);
    font-size: 15px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    text-align: center;
    transition: border-color .15s, background .15s;
}

.ac-opcao input:checked ~ span:not(.radio-custom-dummy) {
    border-color: var(--ac-preto);
    background: var(--ac-preto);
    color: var(--ac-branco);
}

.ac-opcao input:focus-visible ~ span:not(.radio-custom-dummy) {
    outline: 3px solid var(--ac-amarelo);
    outline-offset: 2px;
}

.ac-cadastro__acoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 28px;
    margin-top: 8px;
}

@media (max-width: 991px) {
    .ac-entrar {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .ac-ficha {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .ac-secao--atleta {
        padding: 36px 0 48px;
    }

    /* No celular o formulário aparece logo; a lista do que tem na área fica de fora */
    .ac-entrar__lista {
        display: none;
    }

    .ac-entrar__intro .ac-titulo {
        font-size: 30px;
    }

    .ac-painel__acoes {
        width: 100%;
    }

    .ac-painel__acoes .ac-botao {
        flex: 1;
    }

    .ac-ficha {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .ac-ficha__bloco {
        padding: 18px;
    }

    .ac-secao--cadastro {
        padding: 24px 0 48px;
    }

    .ac-bloco {
        padding: 18px 16px 2px;
    }

    .ac-bloco legend {
        font-size: 22px;
    }

    .ac-campos {
        grid-template-columns: 1fr;
    }

    .ac-cadastro__acoes .ac-botao {
        width: 100%;
    }

    .ac-cadastro__acoes {
        justify-content: center;
    }
}

/* ===== Páginas de texto (Acorremar, Treinamento, Patrocinadores, Estatuto) ===== */

.ac-intro {
    max-width: 720px;
    margin: 0 auto;
    font-size: 18px;
    line-height: 1.6;
    text-align: center;
    color: var(--ac-grafite);
}

/* Cartões de informação com ícone */
.ac-info {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin: 36px 0 0;
    padding: 0;
    list-style: none;
}

.ac-info--quatro {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ac-info li {
    padding: 28px 24px;
    border-radius: var(--ac-raio);
    background: var(--ac-branco);
    box-shadow: 0 10px 40px rgba(0, 0, 0, .06);
}

.ac-info .mdi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--ac-preto);
    color: var(--ac-amarelo);
    font-size: 26px;
}

.ac-info h3 {
    margin: 18px 0 6px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-size: 26px;
    line-height: 1.1;
    text-transform: uppercase;
    color: var(--ac-preto);
}

.ac-info p {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    color: var(--ac-grafite);
}

.ac-info a,
.ac-passos a {
    color: var(--ac-vermelho);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Passos numerados */
.ac-passos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin: 36px 0 0;
    padding: 0;
    list-style: none;
    counter-reset: passo;
}

.ac-passos li {
    position: relative;
    padding: 28px 24px 26px;
    border: 2px solid var(--ac-borda);
    border-radius: var(--ac-raio);
    counter-increment: passo;
}

.ac-passos li::before {
    content: counter(passo);
    display: block;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-style: italic;
    font-size: 64px;
    line-height: .9;
    color: var(--ac-vermelho);
}

.ac-passos h3 {
    margin: 12px 0 6px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-size: 26px;
    line-height: 1.1;
    text-transform: uppercase;
    color: var(--ac-preto);
}

.ac-passos p {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    color: var(--ac-grafite);
}

/* Chamada com dois botões */
.ac-chamada__acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

/* Patrocinadores (página) */
.ac-parceiros {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: 40px 0 0;
    padding: 0;
    list-style: none;
}

.ac-parceiros li {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 20px 18px;
    border: 2px solid var(--ac-borda);
    border-radius: var(--ac-raio);
    background: var(--ac-branco);
}

.ac-parceiros img {
    display: block;
    width: 100%;
    height: auto;
}

.ac-parceiros__titulo {
    margin-top: 56px;
}

.ac-parceiros span {
    margin-top: 10px;
    font-family: var(--ac-fonte-titulo);
    font-weight: 700;
    font-size: 19px;
    text-transform: uppercase;
    letter-spacing: .03em;
    text-align: center;
    color: var(--ac-preto);
}

/* Estatuto */
.ac-documento {
    overflow: hidden;
    border-radius: var(--ac-raio);
    background: var(--ac-branco);
    box-shadow: 0 10px 40px rgba(0, 0, 0, .07);
}

.ac-documento__cabeca {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 20px;
    padding: 28px;
}

.ac-documento__cabeca > .mdi {
    font-size: 56px;
    line-height: 1;
    color: var(--ac-vermelho);
}

.ac-documento__cabeca > div:not(.ac-documento__acoes) {
    flex: 1 1 260px;
}

.ac-documento h2 {
    margin: 0;
    font-family: var(--ac-fonte-titulo);
    font-weight: 800;
    font-size: 30px;
    line-height: 1.1;
    text-transform: uppercase;
    color: var(--ac-preto);
}

.ac-documento p {
    margin: 4px 0 0;
    color: var(--ac-cinza);
}

.ac-documento__acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ac-documento__leitor {
    display: block;
    width: 100%;
    height: 80vh;
    min-height: 560px;
    border: 0;
    border-top: 2px solid var(--ac-borda);
}

@media (max-width: 991px) {
    .ac-info,
    .ac-info--quatro,
    .ac-passos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ac-parceiros {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ac-documento__leitor {
        display: none;
    }
}

@media (max-width: 575px) {
    .ac-info,
    .ac-info--quatro,
    .ac-passos {
        grid-template-columns: minmax(0, 1fr);
    }

    .ac-parceiros {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .ac-parceiros li {
        padding: 14px 12px 12px;
    }

    .ac-parceiros span {
        font-size: 16px;
    }

    .ac-documento__cabeca {
        padding: 22px;
    }

    .ac-documento__acoes,
    .ac-chamada__acoes {
        width: 100%;
    }

    .ac-documento__acoes .ac-botao,
    .ac-chamada__acoes .ac-botao {
        flex: 1 1 0;
    }
}
