/* ============================================================
   Rede Fialla - Folha de estilos principal
   Mobile-first | Cores extraídas do logo.png
   ============================================================ */

/* ------------------------ Variáveis ------------------------ */
:root {
    --cor-primaria: #284358;      /* azul-marinho do logo */
    --cor-secundaria: #ED3237;    /* vermelho do logo */
    --cor-primaria-escura: #1d3241;
    --cor-secundaria-escura: #c9262b;
    --cor-fundo-claro: #f5f7f9;
    --cor-texto: #333333;
    --cor-texto-suave: #5b6b77;     /* cinza-azulado para textos secundários */
    --cor-texto-claro: #ffffff;
    --cor-borda: #e2e8ed;
    --fonte-base: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    --fonte-titulos: 'Poppins', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

    /* Elevação em três níveis (tom azulado da marca, nunca preto puro) */
    --sombra-suave: 0 1px 3px rgba(40, 67, 88, 0.08), 0 4px 14px rgba(40, 67, 88, 0.08);
    --sombra-media: 0 6px 24px rgba(40, 67, 88, 0.16);
    --sombra-alta: 0 18px 44px rgba(40, 67, 88, 0.24);

    /* Raios de borda padronizados */
    --raio: 12px;            /* cards e imagens */
    --raio-pequeno: 8px;     /* botões e elementos internos */
    --raio-pilula: 999px;

    /* Respiro vertical das seções: cresce com a tela */
    --espaco-secao: clamp(3.5rem, 2.4rem + 3.5vw, 5.5rem);

    --transicao: 0.3s ease;
    --transicao-suave: 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

/* ------------------------ Reset básico ---------------------- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    /* Compensa o header fixo ao navegar por âncoras (no mobile o
       cabeçalho é mais alto por causa da caixa da logo; a navegação
       acontece com o cabeçalho já compactado pelo scroll) */
    scroll-padding-top: 115px;
}

body {
    font-family: var(--fonte-base);
    color: var(--cor-texto);
    line-height: 1.6;
    background: #ffffff;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--fonte-titulos);
    line-height: 1.3;
}

img {
    max-width: 100%;
    display: block;
}

a {
    text-decoration: none;
    color: inherit;
}

ul {
    list-style: none;
}

button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
}

/* Conteúdo apenas para leitores de tela (SEO/acessibilidade): visualmente
   oculto, mas presente na árvore de acessibilidade e para os buscadores */
.sr-apenas {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Foco visível para navegação por teclado */
:focus-visible {
    outline: 3px solid var(--cor-secundaria);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Em fundos escuros ou vermelhos o contorno vermelho some: usa branco */
.topbar :focus-visible,
.servicos :focus-visible,
.sobre-hero :focus-visible,
.fidelidade-banner :focus-visible,
.contato-banner :focus-visible,
.slider :focus-visible,
.rodape :focus-visible {
    outline-color: #ffffff;
}

/* Usuários que preferem menos movimento: apenas o scroll deixa de ser
   animado; as transições/animações da interface seguem suaves (sem cortes) */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* Container central reutilizável */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* Título padrão de seção */
.secao__titulo {
    /* Título fluido: cresce com a tela sem precisar de breakpoint */
    font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.5rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--cor-primaria);
    margin-bottom: 1rem;
    position: relative;
    padding-bottom: 0.5rem;
}

/* Detalhe decorativo em vermelho sob o título */
.secao__titulo::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 60px;
    height: 4px;
    background: var(--cor-secundaria);
    border-radius: 2px;
}

.secao__titulo--centralizado {
    text-align: center;
}

.secao__titulo--centralizado::after {
    left: 50%;
    transform: translateX(-50%);
}

/* Ícones dos cards em badge circular com gradiente da marca */
.servicos__icone,
.unidades__icone,
.confianca__icone,
.mvv__icone {
    /* O all.min.css do Font Awesome vem depois deste arquivo e redefine display
       via var(--fa-display); fixar a variável mantém o inline-flex e centraliza o glifo */
    --fa-display: inline-flex;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    font-size: 1.6rem;
    color: var(--cor-secundaria);
    background: linear-gradient(135deg, rgba(237, 50, 55, 0.12), rgba(40, 67, 88, 0.08));
    margin-bottom: 0.75rem;
    transition: background var(--transicao), color var(--transicao), transform var(--transicao-suave);
}

.servicos__card:hover .servicos__icone,
.unidades__card:hover .unidades__icone,
.confianca__card:hover .confianca__icone,
.mvv__card:hover .mvv__icone {
    background: var(--cor-secundaria);
    color: var(--cor-texto-claro);
    transform: scale(1.08);
}

/* Barra superior dos cards de destaque: gradiente que se expande no hover */
.unidades__card,
.confianca__card,
.mvv__card {
    position: relative;
    overflow: hidden;
}

.unidades__card::before,
.confianca__card::before,
.mvv__card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--cor-secundaria), var(--cor-primaria));
    transform: scaleX(0.35);
    transform-origin: left;
    transition: transform var(--transicao-suave);
}

.unidades__card:hover::before,
.confianca__card:hover::before,
.mvv__card:hover::before {
    transform: scaleX(1);
}

/* Botão padrão do site */
.botao {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border-radius: var(--raio-pequeno);
    font-weight: 600;
    color: var(--cor-texto-claro);
    transition: background var(--transicao), transform var(--transicao), box-shadow var(--transicao);
}

.botao:hover {
    transform: translateY(-2px);
    box-shadow: var(--sombra-media);
}

.botao:active {
    transform: translateY(0) scale(0.97);
    box-shadow: var(--sombra-suave);
}

.botao--primario {
    background: var(--cor-primaria);
}

.botao--primario:hover {
    background: var(--cor-primaria-escura);
}

.botao--secundario {
    background: var(--cor-secundaria);
}

.botao--secundario:hover {
    background: var(--cor-secundaria-escura);
}

/* ------------------------ Topbar ---------------------------- */
.topbar {
    background: var(--cor-secundaria);
    color: var(--cor-texto-claro);
    font-size: 0.85rem;
    padding: 0.4rem 0;
}

.topbar__conteudo {
    display: flex;
    justify-content: flex-end; /* alinhado à direita */
    gap: 1.25rem;
    flex-wrap: wrap;
}

.topbar__item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: color var(--transicao);
}

.topbar__item:hover {
    color: rgba(255, 255, 255, 0.85);
}

/* ------------------------ Cabeçalho -------------------------- */
.cabecalho {
    background: #ffffff;
    box-shadow: var(--sombra-suave);
    position: sticky; /* header fixo ao rolar */
    top: 0;
    z-index: 100;
}

.cabecalho__conteudo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

/* Caixa branca que destaca a logo sobre o menu */
.cabecalho__logo-caixa {
    align-self: flex-start;
    margin-top: -0.5rem; /* encosta no topo do cabeçalho */
    background: #ffffff;
    border-radius: 0 0 var(--raio) var(--raio);
    border: 1px solid var(--cor-borda);
    border-top: none;
    box-shadow: var(--sombra-suave);
    padding: 0.5rem 0.75rem;
    position: relative;
    z-index: 5;
    transition: margin var(--transicao);
}

.cabecalho__logo img {
    height: 84px;
    width: auto;
    transition: height var(--transicao);
}

/* Ao rolar a página o cabeçalho compacta e ganha profundidade */
.cabecalho--rolado {
    box-shadow: var(--sombra-media);
}

.cabecalho--rolado .cabecalho__logo img {
    height: 60px;
}

/* Botão hambúrguer (mobile) */
.cabecalho__hamburguer {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 0.5rem;
}

.cabecalho__hamburguer span {
    width: 26px;
    height: 3px;
    background: var(--cor-primaria);
    border-radius: 2px;
    transition: transform var(--transicao), opacity var(--transicao);
}

/* Animação do hambúrguer para "X" quando aberto */
.cabecalho__hamburguer.aberto span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.cabecalho__hamburguer.aberto span:nth-child(2) {
    opacity: 0;
}

.cabecalho__hamburguer.aberto span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* Menu mobile: escondido por padrão, ocupa a largura toda */
.menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #ffffff;
    box-shadow: var(--sombra-suave);
}

.menu.aberto {
    display: block;
}

.menu__lista {
    display: flex;
    flex-direction: column;
}

.menu__link {
    display: block;
    padding: 0.9rem 1.25rem;
    color: var(--cor-primaria);
    font-weight: 600;
    border-bottom: 1px solid var(--cor-borda);
    transition: color var(--transicao), background var(--transicao);
}

.menu__link:hover,
.menu__link--ativo {
    color: var(--cor-secundaria);
}

/* Item de destaque do menu (Fidelidade): reforça a cor da marca */
.menu__link--cta {
    color: var(--cor-secundaria);
    font-weight: 700;
}

/* ------------------------ Slider ----------------------------- */
.slider {
    position: relative;
    overflow: hidden;
}

/* Scrim de base: garante a leitura dos dots sobre qualquer banner */
.slider::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 72px;
    background: linear-gradient(to top, rgba(29, 50, 65, 0.45), transparent);
    pointer-events: none;
}

.slider__trilha {
    display: flex;
    transition: transform 0.6s ease;
    touch-action: pan-y; /* swipe horizontal sem travar o scroll da página */
}

.slider__slide {
    min-width: 100%;
}

.slider__slide img {
    width: 100%;
    height: auto;
}

/* Setas de navegação: efeito vidro; no mobile o swipe assume */
.slider__seta {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(29, 50, 65, 0.45);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: var(--cor-texto-claro);
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    transition: background var(--transicao);
    z-index: 5;
}

.slider__seta:hover {
    background: var(--cor-secundaria);
}

.slider__seta--anterior {
    left: 0.75rem;
}

.slider__seta--proxima {
    right: 0.75rem;
}

/* Indicadores (dots) */
.slider__dots {
    position: absolute;
    bottom: 0.75rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 0.5rem;
    z-index: 5;
}

.slider__dot {
    width: 10px;
    height: 10px;
    border-radius: var(--raio-pilula);
    background: rgba(255, 255, 255, 0.55);
    transition: background var(--transicao), width var(--transicao);
}

/* Dot ativo vira uma pílula alongada */
.slider__dot--ativo {
    width: 26px;
    background: #ffffff;
}

/* Barra de progresso do autoplay (animada via JS) */
.slider__progresso {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 100%;
    background: var(--cor-secundaria);
    transform: scaleX(0);
    transform-origin: left;
    z-index: 6;
}

/* ------------------------ Seção História --------------------- */
.historia {
    padding: var(--espaco-secao) 0;
}

.historia__conteudo {
    display: grid;
    grid-template-columns: 1fr; /* mobile: imagem acima do texto */
    gap: 2rem;
    align-items: center;
}

.historia__imagem img {
    border-radius: var(--raio);
    box-shadow: var(--sombra-suave);
    width: 100%;
}

.historia__texto p {
    margin-bottom: 1rem;
    font-size: 1.0625rem;
    line-height: 1.75;
    max-width: 60ch;
}

/* ------------------------ Seção Serviços --------------------- */
.servicos {
    padding: var(--espaco-secao) 0;
    background: linear-gradient(165deg, #2e4d66 0%, var(--cor-primaria) 45%, var(--cor-primaria-escura) 100%);
}

.servicos .secao__titulo {
    color: var(--cor-texto-claro);
}

.servicos__grade {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: 1fr; /* mobile: uma coluna */
    gap: 1.25rem;
}

.servicos__card {
    background: #ffffff;
    border-radius: var(--raio);
    padding: 1.75rem 1.25rem;
    text-align: center;
    box-shadow: var(--sombra-suave);
    transition: transform var(--transicao-suave), box-shadow var(--transicao-suave);
}

.servicos__card:hover {
    transform: translateY(-6px);
    box-shadow: var(--sombra-alta);
}

.servicos__titulo {
    color: var(--cor-primaria);
    margin-bottom: 0.5rem;
    font-size: 1.1rem;
}

.servicos__texto {
    font-size: 0.95rem;
    color: var(--cor-texto-suave);
}

.servicos__acao {
    margin-top: 2rem;
    text-align: center;
}

/* --------------------- Seção Fidelidade (CTA) ---------------- */
.fidelidade-cta {
    padding: var(--espaco-secao) 0;
    background: var(--cor-fundo-claro);
}

.fidelidade-cta__box {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    background: linear-gradient(165deg, #2e4d66 0%, var(--cor-primaria) 45%, var(--cor-primaria-escura) 100%);
    color: #ffffff;
    border-radius: var(--raio);
    padding: 2.5rem 0;
    box-shadow: var(--sombra-media);
    overflow: hidden;
}

.fidelidade-cta__topo {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1.25rem;
    padding: 0 1.5rem;
}

.fidelidade-cta__icone {
    font-size: 2.75rem;
    color: var(--cor-secundaria);
}

.fidelidade-cta__titulo {
    color: #ffffff;
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
}

.fidelidade-cta__texto {
    color: rgba(255, 255, 255, 0.9);
    max-width: 640px;
    margin: 0 auto 1.5rem;
}

.fidelidade-cta__botao {
    margin-top: 0.25rem;
}

/* Vitrine: carrossel contínuo de prêmios e parceiros dentro do box */
.fidelidade-cta__vitrine {
    width: 100%;
    overflow: hidden;
    /* Esmaece as pontas para os cards "nascerem" e "sumirem" suavemente */
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.fidelidade-cta__trilha {
    display: flex;
    width: max-content;
    animation: fidelidade-vitrine 45s linear infinite;
}

/* Pausa o desfile quando o visitante interage com os cards */
.fidelidade-cta__vitrine:hover .fidelidade-cta__trilha,
.fidelidade-cta__trilha:focus-within {
    animation-play-state: paused;
}

/* A trilha tem o conteúdo duplicado: -50% recomeça exatamente no início */
@keyframes fidelidade-vitrine {
    to {
        transform: translateX(-50%);
    }
}

.fidelidade-cta__item {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    width: 172px;
    margin-right: 1rem;
    background: #ffffff;
    border-radius: var(--raio-pequeno);
    overflow: hidden;
    text-decoration: none;
    color: var(--cor-texto);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.28);
    transition: transform var(--transicao), box-shadow var(--transicao);
}

.fidelidade-cta__item:hover,
.fidelidade-cta__item:focus-visible {
    transform: translateY(-5px);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.35);
}

.fidelidade-cta__item-foto {
    position: relative;
    display: block;
    height: 108px;
    background: var(--cor-fundo-claro);
}

.fidelidade-cta__item-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Chip que identifica se o card é um prêmio ou um parceiro */
.fidelidade-cta__item-tipo {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    padding: 0.1rem 0.55rem;
    border-radius: var(--raio-pilula);
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #ffffff;
}

.fidelidade-cta__item-tipo--premio {
    background: var(--cor-secundaria);
}

.fidelidade-cta__item-tipo--parceiro {
    background: var(--cor-primaria);
}

.fidelidade-cta__item-info {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.6rem 0.75rem 0.75rem;
}

.fidelidade-cta__item-titulo {
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.35;
    /* No máximo duas linhas, com reticências */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.7em;
}

.fidelidade-cta__item-pontos {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--cor-primaria);
}

.fidelidade-cta__item-pontos .fa-star {
    color: var(--cor-secundaria);
    font-size: 0.7rem;
    margin-right: 0.15rem;
}

@media (min-width: 992px) {
    .fidelidade-cta__box {
        padding: 3rem 0 2.75rem;
    }

    .fidelidade-cta__topo {
        flex-direction: row;
        text-align: left;
        gap: 2rem;
        padding: 0 3.5rem;
    }

    .fidelidade-cta__texto {
        margin-left: 0;
    }
}

/* ------------------------ Seção Unidades --------------------- */
.unidades {
    padding: var(--espaco-secao) 0;
    background: var(--cor-fundo-claro);
}

.unidades__intro {
    text-align: center;
    color: var(--cor-texto-suave);
}

.unidades__grade {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: 1fr; /* mobile: uma coluna */
    gap: 1.25rem;
}

.unidades__card {
    background: #ffffff;
    border-radius: var(--raio);
    padding: 1.75rem 1.25rem;
    text-align: center;
    border: 1px solid var(--cor-borda);
    box-shadow: var(--sombra-suave);
    transition: transform var(--transicao-suave), box-shadow var(--transicao-suave);
}

.unidades__card:hover {
    transform: translateY(-6px);
    box-shadow: var(--sombra-media);
}

.unidades__titulo {
    color: var(--cor-primaria);
    margin-bottom: 0.5rem;
    font-size: 1.15rem;
}

.unidades__endereco {
    font-size: 0.95rem;
    color: var(--cor-texto-suave);
    margin-bottom: 0.75rem;
}

.unidades__telefone {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    color: var(--cor-primaria);
    transition: color var(--transicao);
}

.unidades__telefone:hover {
    color: var(--cor-secundaria);
}

/* ------------------------ Página Sobre nós ------------------- */
.sobre-hero {
    /* Brilho vermelho da marca no canto + gradiente azul profundo */
    background:
        radial-gradient(900px 380px at 85% -20%, rgba(237, 50, 55, 0.22), transparent 60%),
        linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-primaria-escura) 100%);
    color: var(--cor-texto-claro);
    padding: var(--espaco-secao) 0;
    text-align: center;
}

.sobre-hero__titulo {
    font-size: clamp(2rem, 1.4rem + 2.5vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 0.75rem;
}

.sobre-hero__subtitulo {
    max-width: 720px;
    margin: 0 auto 1.5rem;
    font-size: clamp(1rem, 0.95rem + 0.35vw, 1.15rem);
    color: rgba(255, 255, 255, 0.92);
}

.sobre-hero__acoes {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

/* Marcos da trajetória: accordion no mobile, cards no desktop */
.marcos {
    padding: var(--espaco-secao) 0;
}

.marcos__grade {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: 1fr; /* mobile: lista empilhada (accordion) */
    gap: 1rem;
}

.marcos__card {
    background: #ffffff;
    border-radius: var(--raio);
    overflow: hidden;
    box-shadow: var(--sombra-suave);
    border: 1px solid var(--cor-borda);
    transition: box-shadow var(--transicao-suave);
}

.marcos__card:hover {
    box-shadow: var(--sombra-media);
}

.marcos__cabecalho {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    text-align: left;
}

.marcos__ano {
    background: var(--cor-secundaria);
    color: var(--cor-texto-claro);
    font-weight: 700;
    border-radius: var(--raio-pequeno);
    padding: 0.2rem 0.6rem;
    font-size: 0.95rem;
}

.marcos__titulo {
    flex: 1;
    color: var(--cor-primaria);
    font-weight: 700;
    font-size: 1.05rem;
}

.marcos__seta {
    color: var(--cor-primaria);
    transition: transform var(--transicao);
}

.marcos__card--aberto .marcos__seta {
    transform: rotate(180deg);
}

/* Mobile: corpo fechado por padrão, abre pelo accordion (js/main.js) */
.marcos__corpo {
    display: none;
    padding: 0 1.25rem 1.25rem;
}

.marcos__card--aberto .marcos__corpo {
    display: block;
}

.marcos__imagem {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: var(--raio-pequeno);
    margin-bottom: 0.75rem;
}

.marcos__texto {
    font-size: 0.95rem;
    color: var(--cor-texto-suave);
}

/* Provas de confiança */
.confianca {
    padding: var(--espaco-secao) 0;
    background: var(--cor-fundo-claro);
}

.confianca__grade {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: 1fr; /* mobile: uma coluna */
    gap: 1.25rem;
}

.confianca__card {
    background: #ffffff;
    border-radius: var(--raio);
    padding: 1.75rem 1.25rem;
    text-align: center;
    border: 1px solid var(--cor-borda);
    box-shadow: var(--sombra-suave);
    transition: transform var(--transicao-suave), box-shadow var(--transicao-suave);
}

.confianca__card:hover {
    transform: translateY(-6px);
    box-shadow: var(--sombra-media);
}

.confianca__titulo {
    color: var(--cor-primaria);
    margin-bottom: 0.5rem;
    font-size: 1.15rem;
}

.confianca__texto {
    font-size: 0.95rem;
    color: var(--cor-texto-suave);
}

/* Missão, visão e valores */
.mvv {
    padding: var(--espaco-secao) 0;
}

.mvv__grade {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: 1fr; /* mobile: cards empilhados */
    gap: 1.25rem;
}

.mvv__card {
    background: #ffffff;
    border-radius: var(--raio);
    padding: 1.75rem 1.25rem;
    text-align: center;
    border: 1px solid var(--cor-borda);
    box-shadow: var(--sombra-suave);
    transition: transform var(--transicao-suave), box-shadow var(--transicao-suave);
}

.mvv__card:hover {
    transform: translateY(-6px);
    box-shadow: var(--sombra-media);
}

.mvv__titulo {
    color: var(--cor-primaria);
    margin-bottom: 0.5rem;
    font-size: 1.15rem;
}

.mvv__texto {
    font-size: 0.95rem;
    color: var(--cor-texto-suave);
}

/* ------------------------ Página Fidelidade ------------------ */
.fidelidade-banner {
    background:
        radial-gradient(900px 380px at 85% -20%, rgba(237, 50, 55, 0.22), transparent 60%),
        linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-primaria-escura) 100%);
    color: var(--cor-texto-claro);
    padding: var(--espaco-secao) 0;
    text-align: center;
}

.fidelidade-banner__titulo {
    font-size: clamp(2rem, 1.4rem + 2.5vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 0.75rem;
}

.fidelidade-banner__texto {
    max-width: 760px;
    margin: 0 auto;
    font-size: clamp(1rem, 0.95rem + 0.35vw, 1.15rem);
    color: rgba(255, 255, 255, 0.92);
}

.produtos {
    padding: var(--espaco-secao) 0;
    background: var(--cor-fundo-claro);
}

.produtos__grade {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: 1fr; /* mobile: uma coluna */
    gap: 1.5rem;
}

.produtos__card {
    background: #ffffff;
    border-radius: var(--raio);
    overflow: hidden;
    border: 1px solid var(--cor-borda);
    box-shadow: var(--sombra-suave);
    transition: transform var(--transicao-suave), box-shadow var(--transicao-suave);
    display: flex;
    flex-direction: column;
}

.produtos__card:hover {
    transform: translateY(-6px);
    box-shadow: var(--sombra-media);
}

.produtos__foto {
    overflow: hidden; /* contém o zoom da foto no hover */
}

.produtos__foto img {
    width: 100%;
    height: 200px;
    object-fit: contain; /* fotos do catálogo têm fundo branco */
    background: #ffffff;
    transition: transform var(--transicao-suave);
}

.produtos__card:hover .produtos__foto img {
    transform: scale(1.05);
}

.produtos__info {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
}

.produtos__descricao {
    color: var(--cor-primaria);
    font-size: 1.05rem;
    flex: 1;
}

/* Pontos destacados na cor primária, conforme especificação */
.produtos__pontos {
    color: var(--cor-primaria);
    font-weight: 600;
    background: var(--cor-fundo-claro);
    border-radius: var(--raio-pequeno);
    padding: 0.5rem 0.75rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.produtos__pontos i {
    color: var(--cor-secundaria);
}

/* Complemento em dinheiro pago junto com os pontos no resgate */
.produtos__complemento {
    color: var(--cor-secundaria);
    font-weight: 700;
}

/* Regra de resgate exibida abaixo da grade de prêmios */
.produtos__regra {
    margin-top: 2rem;
    text-align: center;
    font-weight: 600;
    color: var(--cor-primaria);
}

.produtos__aviso {
    text-align: center;
    margin-top: 2rem;
    font-size: 1.05rem;
    color: var(--cor-primaria);
}

/* Parceiros do clube (resgate de pontos em estabelecimentos) */
.parceiros {
    padding: var(--espaco-secao) 0;
    background: #ffffff;
}

.parceiros__subtitulo {
    text-align: center;
    color: var(--cor-texto);
    margin-top: 0.5rem;
}

.parceiros__grade {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: 1fr; /* mobile: uma coluna */
    gap: 1.5rem;
}

.parceiros__card {
    background: #ffffff;
    border-radius: var(--raio);
    overflow: hidden;
    border: 1px solid var(--cor-borda);
    box-shadow: var(--sombra-suave);
    transition: transform var(--transicao-suave), box-shadow var(--transicao-suave);
    display: flex;
    flex-direction: column;
}

.parceiros__card:hover {
    transform: translateY(-6px);
    box-shadow: var(--sombra-media);
}

.parceiros__foto img {
    width: 100%;
    height: 170px;
    object-fit: cover;
    display: block;
}

.parceiros__info {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
}

.parceiros__nome {
    color: var(--cor-secundaria);
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.parceiros__oferta {
    color: var(--cor-primaria);
    font-weight: 600;
    flex: 1;
}

.parceiros__observacao {
    font-size: 0.85rem;
    color: var(--cor-texto);
}

.parceiros__pontos {
    color: var(--cor-primaria);
    font-weight: 600;
    background: var(--cor-fundo-claro);
    border-radius: var(--raio-pequeno);
    padding: 0.5rem 0.75rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    align-self: flex-start;
}

.parceiros__pontos i {
    color: var(--cor-secundaria);
}

.parceiros__aviso {
    margin-top: 2.5rem;
    text-align: center;
    font-size: 0.85rem;
    color: var(--cor-texto);
}

@media (min-width: 600px) {
    .parceiros__grade {
        grid-template-columns: repeat(2, 1fr); /* tablet/desktop: duas colunas */
    }
}

/* Chamada do app do clube de fidelidade (QR code) */
.app-clube {
    padding: var(--espaco-secao) 0;
    background: var(--cor-fundo-claro);
}

.app-clube__conteudo {
    display: flex;
    flex-direction: column; /* mobile: empilhado */
    align-items: center;
    gap: 2rem;
    text-align: center;
}

.app-clube__titulo {
    font-size: clamp(1.75rem, 1.3rem + 2vw, 2.75rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--cor-primaria);
    margin-bottom: 0.75rem;
}

.app-clube__destaque {
    color: var(--cor-secundaria);
}

.app-clube__chamada {
    max-width: 520px;
    margin: 0 auto;
    font-size: clamp(1.05rem, 1rem + 0.4vw, 1.25rem);
    color: var(--cor-texto);
}

.app-clube__qr {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.app-clube__qr img {
    width: 220px;
    height: 220px;
    padding: 0.75rem;
    background: #ffffff;
    border: 4px solid var(--cor-primaria);
    border-radius: var(--raio);
    box-shadow: var(--sombra-media);
}

.app-clube__instrucao {
    font-weight: 700;
    color: var(--cor-secundaria);
}

.app-clube__link {
    color: var(--cor-texto);
}

.app-clube__link a {
    color: var(--cor-primaria);
    font-weight: 600;
    text-decoration: underline;
}

.app-clube__botao {
    margin-top: 0.25rem;
}

@media (min-width: 992px) {
    .app-clube__conteudo {
        flex-direction: row; /* desktop: texto ao lado do QR */
        justify-content: center;
        text-align: left;
    }

    .app-clube__chamada {
        margin: 0;
    }
}

/* ------------------------ Contato ---------------------------- */
/* Banner reaproveita o mesmo visual do banner de fidelidade */
.contato-banner {
    background:
        radial-gradient(900px 380px at 85% -20%, rgba(237, 50, 55, 0.22), transparent 60%),
        linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-primaria-escura) 100%);
    color: var(--cor-texto-claro);
    padding: var(--espaco-secao) 0;
    text-align: center;
}

.contato-banner__titulo {
    font-size: clamp(2rem, 1.4rem + 2.5vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 0.75rem;
}

.contato-banner__texto {
    max-width: 760px;
    margin: 0 auto;
    font-size: clamp(1rem, 0.95rem + 0.35vw, 1.15rem);
    color: rgba(255, 255, 255, 0.92);
}

.contato {
    padding: var(--espaco-secao) 0;
    background: var(--cor-fundo-claro);
}

.contato__grade {
    display: grid;
    grid-template-columns: 1fr; /* mobile: colunas empilhadas */
    gap: 2rem;
    align-items: start;
}

.contato__coluna {
    background: #ffffff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra-suave);
    padding: 1.75rem;
}

/* Avisos de sucesso/erro no topo do formulário */
.contato__aviso {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    border-radius: var(--raio-pequeno);
    padding: 0.85rem 1rem;
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
}

.contato__aviso--sucesso {
    background: #e7f6ec;
    color: #1c7a3f;
}

.contato__aviso--erro {
    background: #fdecec;
    color: var(--cor-secundaria-escura);
}

.contato__form {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

/* Honeypot: some da tela sem usar display:none (robôs ignoram o CSS) */
.contato__honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.contato__campo {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.contato__label {
    font-weight: 600;
    color: var(--cor-primaria);
    font-size: 0.95rem;
}

.contato__input {
    font-family: inherit;
    font-size: 1rem;
    color: var(--cor-texto);
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-pequeno);
    background: #ffffff;
    transition: border-color var(--transicao), box-shadow var(--transicao);
}

.contato__input:focus {
    outline: none;
    border-color: var(--cor-primaria);
    box-shadow: 0 0 0 3px rgba(40, 67, 88, 0.12);
}

.contato__textarea {
    resize: vertical;
    min-height: 140px;
}

.contato__erro {
    color: var(--cor-secundaria);
    font-size: 0.85rem;
}

/* Coluna lateral com os demais canais de contato */
.contato__info-titulo {
    font-size: 1.25rem;
    color: var(--cor-primaria);
    margin-bottom: 1rem;
}

.contato__lista li {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0;
    color: var(--cor-texto);
    border-bottom: 1px solid var(--cor-borda);
}

.contato__lista li:last-child {
    border-bottom: none;
}

.contato__lista i {
    color: var(--cor-secundaria);
    width: 20px;
    text-align: center;
}

.contato__lista a:hover {
    color: var(--cor-primaria);
    text-decoration: underline;
}

/* ------------------------ Rodapé ----------------------------- */
.rodape {
    background: var(--cor-primaria);
    color: var(--cor-texto-claro);
    padding-top: 3rem;
}

.rodape__grade {
    display: grid;
    grid-template-columns: 1fr; /* mobile: colunas empilhadas */
    gap: 2rem;
    padding-bottom: 2rem;
}

.rodape__logo {
    height: 55px;
    width: auto;
    background: #ffffff;
    border-radius: var(--raio-pequeno);
    padding: 6px;
    margin-bottom: 1rem;
}

.rodape__texto {
    font-size: 0.95rem;
    color: #c9d4dd; /* cinza-azulado claro: contraste AA sobre o azul */
}

.rodape__titulo {
    font-size: 1.1rem;
    margin-bottom: 1rem;
    position: relative;
    padding-bottom: 0.5rem;
}

.rodape__titulo::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 40px;
    height: 3px;
    background: var(--cor-secundaria);
    border-radius: 2px;
}

.rodape__lista li {
    margin-bottom: 0.6rem;
}

.rodape__lista a {
    color: #c9d4dd;
    transition: color var(--transicao);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.rodape__lista a:hover {
    color: #ffffff;
}

.rodape__sociais {
    display: flex;
    gap: 0.75rem;
}

.rodape__sociais a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--transicao), transform var(--transicao);
}

.rodape__sociais a:hover {
    background: var(--cor-secundaria);
    transform: translateY(-3px);
}

.rodape__copyright {
    background: var(--cor-primaria-escura);
    padding: 1rem 0;
    text-align: center;
    font-size: 0.9rem;
}

.rodape__copyright-linha {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

/* Assinatura da desenvolvedora: pílula clara com a logo e WhatsApp */
.rodape__assinatura {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.5rem 1.1rem;
    border-radius: var(--raio-pilula);
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.25);
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--cor-texto-suave);
    text-decoration: none;
    transition: transform var(--transicao), box-shadow var(--transicao);
}

.rodape__assinatura:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 22px -8px rgba(37, 211, 102, 0.6);
}

.rodape__assinatura img {
    width: 104px;
    height: auto;
    display: block;
}

.rodape__assinatura-wpp {
    width: 19px;
    height: 19px;
    color: #25d366;
    flex-shrink: 0;
}

@media (min-width: 600px) {
    .rodape__copyright-linha {
        flex-direction: row;
        text-align: left;
    }
}

/* ------------------------ Revelação ao rolar ------------------ */
/* Classes aplicadas via JS (IntersectionObserver); sem JS nada fica
   oculto. Após revelar, o JS remove as classes para devolver aos
   cards suas próprias transições de hover. */
.reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal--visivel {
    opacity: 1;
    transform: none;
}

/* ============================================================
   Breakpoints (mobile-first)
   ============================================================ */

/* Tablets */
@media (min-width: 600px) {
    .slider__seta {
        display: flex;
    }

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

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

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

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

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

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

    /* Marcos viram cards: corpo sempre visível, sem accordion */
    .marcos__grade {
        grid-template-columns: repeat(2, 1fr);
    }

    .marcos__corpo {
        display: block;
    }

    .marcos__cabecalho {
        cursor: default;
    }

    /* Especificidade extra para vencer o .fa-solid do Font Awesome,
       carregado depois e que reimpõe display: inline-block na seta */
    .marcos__cabecalho .marcos__seta {
        display: none;
    }
}

/* Desktop */
@media (min-width: 992px) {
    /* Cabeçalho volta a ser fino: a caixa da logo fica "pendurada",
       sobrepondo o conteúdo abaixo (slider) */
    html {
        scroll-padding-top: 80px;
    }

    .cabecalho__logo-caixa {
        margin-bottom: -36px;
    }

    /* Compactado, a caixa da logo volta a caber dentro do cabeçalho */
    .cabecalho--rolado .cabecalho__logo-caixa {
        margin-bottom: 0;
    }

    /* Menu horizontal no desktop, hambúrguer escondido */
    .cabecalho__hamburguer {
        display: none;
    }

    .menu {
        display: block;
        position: static;
        background: transparent;
        box-shadow: none;
    }

    .menu__lista {
        flex-direction: row;
        gap: 0.5rem;
    }

    .menu__link {
        border-bottom: 3px solid transparent;
        padding: 0.75rem 1rem;
    }

    .menu__link:hover,
    .menu__link--ativo {
        border-bottom-color: var(--cor-secundaria);
        background: transparent;
    }

    /* No desktop o "Fidelidade" vira uma pílula vermelha */
    .menu__link--cta {
        background: var(--cor-secundaria);
        color: var(--cor-texto-claro);
        border-radius: var(--raio-pilula);
        padding: 0.6rem 1.25rem;
        margin: 0.35rem 0 0.35rem 0.5rem;
        border-bottom: none;
        transition: background var(--transicao);
    }

    .menu__link--cta:hover,
    .menu__link--cta.menu__link--ativo {
        background: var(--cor-secundaria-escura);
        color: var(--cor-texto-claro);
        border-bottom: none;
    }

    .servicos__grade {
        grid-template-columns: repeat(3, 1fr);
    }

    .unidades__grade {
        grid-template-columns: repeat(3, 1fr);
    }

    .confianca__grade {
        grid-template-columns: repeat(3, 1fr);
    }

    .marcos__grade {
        grid-template-columns: repeat(3, 1fr);
    }

    .mvv__grade {
        grid-template-columns: repeat(3, 1fr);
    }

    .produtos__grade {
        grid-template-columns: repeat(3, 1fr);
    }

    .historia__conteudo {
        grid-template-columns: 1fr 1.2fr; /* imagem ao lado do texto */
    }

    /* Formulário à esquerda (mais largo), canais de contato à direita */
    .contato__grade {
        grid-template-columns: 1.6fr 1fr;
    }

    .rodape__grade {
        grid-template-columns: repeat(4, 1fr);
    }
}
