/* ==========================================================================
   Variáveis de cor da identidade visual
   ========================================================================== */
:root {
    --color-primary: #0432A9;
    --color-secondary: #067BC5;
    --color-primary-dark: #03247a;
    --color-bg-header-top: #0432A9;
    --color-bg-header-main: #ffffff;
    --color-text-on-primary: #ffffff;
    --color-border-soft: rgba(4, 50, 169, 0.12);
}

/* ==========================================================================
   Estilos Globais
   ========================================================================== */
/* ==========================================================================
   Estilos Globais (CORRIGIDO)
   ========================================================================== */
html {
    width: 100%;
    overflow-x: hidden;
    /* Previne scroll lateral */
    overflow-y: scroll;
    /* Força a barra vertical sempre (evita pulo de layout) */
}

body {
    width: 100%;
    overflow-x: hidden;
    overflow-y: visible;
    /* O body NÃO deve ter scroll próprio */
    position: relative;
}

/* Remove scrollbar extra causado por elementos fixed */
body::-webkit-scrollbar {
    width: 8px;
}

body::-webkit-scrollbar-track {
    background: transparent;
}

body::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
}

#conteudo-principal {
    position: relative;
    z-index: 1;
    width: 100%;
    /* Mudado de 100vw para 100% */
    max-width: 100%;
    /* Garante que respeita a largura do pai */
    overflow: visible;
    /* Deixa o scroll pro Body/HTML */
    display: block;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    position: relative;
    z-index: 1030;
    background-color: var(--color-bg-header-main);
}

/* ----- Topbar ----- */

.header-topbar {
    background-color: var(--color-bg-header-top);
    color: var(--color-text-on-primary);
    font-size: 0.875rem;
}

.header-topbar-list {
    gap: 1.5rem;
    padding: 0.4rem 0;
}

.header-topbar-item {
    display: flex;
    align-items: center;
}

.header-topbar-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--color-text-on-primary);
    text-decoration: none;
    transition: color 0.15s ease, opacity 0.15s ease;
}

.header-topbar-link:hover,
.header-topbar-link:focus-visible {
    color: #e2ecff;
    opacity: 0.95;
}

.header-topbar-link:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
}

.header-topbar-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.header-topbar-text {
    white-space: nowrap;
}

/* Redes sociais no topo */
.header-topbar-social {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}

.header-topbar-social-link {
    padding: 0.15rem;
}

/* ----- Header principal / navbar ----- */

.header-main .navbar {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    background-color: var(--color-bg-header-main);
}

.header-logo {
    height: 80px;
    width: auto;
}

/* Links do menu principal */
.header-main-menu .nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 500;
    font-size: 1.18rem;
    padding-inline: 1rem;
    color: #24324a;
    letter-spacing: 0.01em;
    transition: color 0.18s ease, transform 0.18s ease;
}

/* Linha sutil animada abaixo do link */
.header-main-menu .nav-link::after {
    content: "";
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: -0.25rem;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.22s ease;
}

.header-main-menu .nav-link:hover,
.header-main-menu .nav-link:focus-visible,
.header-main-menu .nav-link.active {
    color: var(--color-primary);
    transform: translateY(-1px);
}

.header-main-menu .nav-link:hover::after,
.header-main-menu .nav-link:focus-visible::after,
.header-main-menu .nav-link.active::after {
    transform: scaleX(1);
}

/* Ícone de submenu (seta) */
.header-menu-caret {
    font-size: 0.65rem;
    color: #6c7a96;
    transition: transform 0.18s ease, color 0.18s ease;
}

.nav-item.dropdown.show>.nav-link .header-menu-caret,
.header-main-menu .nav-link:hover .header-menu-caret,
.header-main-menu .nav-link:focus-visible .header-menu-caret {
    color: var(--color-primary);
    transform: translateY(1px) rotate(180deg);
}

.header-main-menu .dropdown-menu {
    border-radius: 0.5rem;
    border-color: var(--color-border-soft);
    box-shadow: 0 10px 30px rgba(7, 22, 51, 0.12);
}

.header-main-menu .dropdown-item:hover,
.header-main-menu .dropdown-item:focus-visible {
    background-color: rgba(4, 50, 169, 0.06);
    color: var(--color-primary);
}

.header-main-menu .dropdown-item-calc {
    font-weight: 700;
    color: var(--color-primary);
}

/* ----- Botão Loja ----- */

.header-shop-btn {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    border: none;
    font-weight: 600;
    padding-inline: 1.4rem;
    border-radius: 999px;
    box-shadow: 0 8px 16px rgba(4, 50, 169, 0.25);
}

.header-shop-btn:hover,
.header-shop-btn:focus-visible {
    background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));
}

.header-shop-btn:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 2px;
}

/* ----- Busca ----- */

.header-search {
    min-width: 170px;
    max-width: 190px;
}

.header-search-mobile {
    display: none;
}

.header-search-input {
    border-radius: 999px 0 0 999px;
    border-color: var(--color-border-soft);
    padding-inline: 1rem;
    font-size: 0.9rem;
}

.header-search-input:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 0.15rem rgba(6, 123, 197, 0.25);
}

.header-search-btn {
    border-radius: 0 999px 999px 0;
    border-color: var(--color-border-soft);
    background-color: #f3f5fb;
    color: var(--color-primary);
}

.header-search-btn:hover,
.header-search-btn:focus-visible {
    background-color: #e4ebff;
    color: var(--color-primary-dark);
}

.header-search-btn:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 2px;
}

.header-search-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ----- Toggler (mobile) ----- */

.header-toggler {
    border-radius: 999px;
    border-color: rgba(4, 50, 169, 0.35);
    padding: 0.4rem 0.7rem;
}

.header-toggler:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 2px;
}

.header-toggler-icon {
    position: relative;
    display: inline-block;
    width: 1.25rem;
    height: 1.25rem;
}

.header-toggler-icon::before,
.header-toggler-icon::after,
.header-toggler-icon span {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    border-radius: 999px;
    background-color: var(--color-primary);
}

.header-toggler-icon::before {
    top: 0.2rem;
}

.header-toggler-icon::after {
    bottom: 0.2rem;
}

.header-toggler-icon span {
    top: 50%;
    transform: translateY(-50%);
}

/* Garantir linha central do ícone hamburger */
.header-toggler-icon::before,
.header-toggler-icon::after {
    transform-origin: center;
}

/* ----- Responsividade ----- */

@media (max-width: 991.98px) {
    .header-topbar-list {
        gap: 0.75rem;
    }

    .header-topbar-text {
        white-space: normal;
    }

    .header-search {
        min-width: 100%;
        margin-top: 0.75rem;
    }

    .header-search-mobile {
        display: block;
        order: 3;
    }

    .header-search-mobile .header-search {
        margin-top: 0;
    }

    .header-actions {
        flex-direction: column;
        align-items: stretch;
        margin-top: 0.5rem;
    }

    .header-shop-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================================
   Hero / Carousel
   ========================================================================== */

.hero-carousel {
    position: relative;
}

.hero-carousel .carousel-item img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
    background-color: #000;
    /* faixa de fundo para não "quebrar" o layout em telas largas */
}

/* Responsivo: alterna entre slider desktop e mobile baseado em viewport.
   Usa breakpoint 768px (alinhado com Bootstrap "md"). */
.hero-carousel--mobile  { display: none; }
.hero-carousel--desktop { display: block; }

@media (max-width: 767.98px) {
    .hero-carousel--desktop { display: none; }
    .hero-carousel--mobile  { display: block; }
}

/* Ajuste para elevar textos e botões em 40px */
.hero-carousel .carousel-caption {
    transform: translateY(-40px);
}

.hero-title {
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    font-weight: 700;
    text-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.hero-subtitle {
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    max-width: 28rem;
    text-shadow: 0 6px 20px rgba(0, 0, 0, 0.6);
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.5rem;
}

/* Botão principal do hero - Design moderno com gradiente roxo e glow */
.hero-btn-primary {
    background: linear-gradient(180deg, #b794f6 0%, #805ad5 50%, #6b46c1 100%);
    border: none;
    border-radius: 999px;
    color: #ffffff;
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.875rem 2rem;
    box-shadow:
        0 0 20px rgba(139, 92, 246, 0.5),
        0 4px 12px rgba(107, 70, 193, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    transition: all 0.25s ease;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

/* Efeito de brilho sutil no topo do botão */
.hero-btn-primary::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.25) 0%, transparent 100%);
    border-radius: 999px 999px 0 0;
    pointer-events: none;
    z-index: 1;
}


.hero-btn-primary:hover,
.hero-btn-primary:focus-visible {
    background: linear-gradient(180deg, #c4b5fd 0%, #9f7aea 50%, #805ad5 100%);
    box-shadow:
        0 0 30px rgba(139, 92, 246, 0.7),
        0 6px 16px rgba(107, 70, 193, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
    color: #ffffff;
}

.hero-btn-primary:active {
    transform: translateY(0);
    box-shadow:
        0 0 15px rgba(139, 92, 246, 0.4),
        0 2px 8px rgba(107, 70, 193, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.hero-btn-primary:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.8);
    outline-offset: 3px;
}

.hero-actions .btn-outline-light {
    border-radius: 999px;
}

/* ==========================================================================
   Animações Fade In (Scroll)
   ========================================================================== */

/* Classe base para elementos que devem animar no scroll */
.fade-in-section {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-section.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Delay escalonado para itens dentro das seções */
.categoria-item {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.categorias-produtos.visible .categoria-item:nth-child(1) {
    transition-delay: 0.1s;
}

.categorias-produtos.visible .categoria-item:nth-child(2) {
    transition-delay: 0.2s;
}

.categorias-produtos.visible .categoria-item:nth-child(3) {
    transition-delay: 0.3s;
}

.categorias-produtos.visible .categoria-item {
    opacity: 1;
    transform: translateY(0);
}

/* Respeitar preferência de movimento reduzido */
@media (prefers-reduced-motion: reduce) {

    .fade-in-section,
    .categoria-item {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ==========================================================================
   Categorias de Produtos
   ========================================================================== */

.categorias-produtos {
    background-color: #f8f9fa;
    padding: 4rem 0;
    position: relative;
    z-index: 10;
}

.categorias-title {
    font-size: clamp(1.75rem, 2.5vw, 2.25rem);
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 3rem;
}

/* Item de categoria - apenas imagem */
.categoria-item {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.categoria-link {
    display: block;
    width: 100%;
    text-decoration: none;
}

.categoria-image {
    width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 1rem;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.categoria-link:hover .categoria-image,
.categoria-link:focus-visible .categoria-image {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.categoria-btn-all {
    border-radius: 999px;
    border: 1px solid rgba(4, 50, 169, 0.22);
    background: linear-gradient(135deg, #ffffff, #f4f8ff);
    color: var(--color-primary);
    font-weight: 700;
    padding: 0.55rem 1.2rem;
}

.categoria-btn-all:hover,
.categoria-btn-all:focus-visible {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    color: #ffffff;
    border-color: transparent;
}

/* Grid de categorias - 3 cards lado a lado */
.categorias-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.categoria-item {
    width: 100%;
}

/* Responsividade */
@media (max-width: 991.98px) {
    .categorias-produtos {
        padding: 3rem 0;
    }

    .categorias-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .categorias-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

/* ==========================================================================
   Produtos em Destaque
   ========================================================================== */

.produtos-destaque {
    background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 100%);
    padding: 6rem 0;
    position: relative;
    overflow: hidden;
    z-index: 10;
}

/* Elemento decorativo de fundo */
.produtos-destaque::before {
    content: "";
    position: absolute;
    top: -50%;
    right: -10%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(4, 50, 169, 0.03) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.produtos-destaque-title {
    font-size: clamp(2rem, 3vw, 2.75rem);
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 4rem;
    position: relative;
    text-align: center;
}

.produtos-destaque-title::after {
    content: "";
    position: absolute;
    bottom: -1rem;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
    border-radius: 2px;
}

/* Grid de produtos - 4 colunas */
.produtos-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    max-width: 1400px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

/* Card do produto */
.produto-card {
    background: #ffffff;
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.08),
        0 0 0 1px rgba(4, 50, 169, 0.05);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    height: 100%;
    position: relative;
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Delay escalonado para cards de produtos */
.produtos-destaque.visible .produto-card:nth-child(1) {
    transition-delay: 0.1s;
}

.produtos-destaque.visible .produto-card:nth-child(2) {
    transition-delay: 0.2s;
}

.produtos-destaque.visible .produto-card:nth-child(3) {
    transition-delay: 0.3s;
}

.produtos-destaque.visible .produto-card:nth-child(4) {
    transition-delay: 0.4s;
}

.produtos-destaque.visible .produto-card {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .produto-card {
        opacity: 1;
        transform: none;
    }
}

.produto-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s ease;
    z-index: 2;
}

.produto-card:hover {
    transform: translateY(-12px);
    box-shadow:
        0 20px 60px rgba(4, 50, 169, 0.2),
        0 0 0 1px rgba(4, 50, 169, 0.1);
}

.produto-card:hover::before {
    transform: scaleX(1);
}

/* Link envolvendo a imagem (toda a área clicável → página do produto) */
.produto-image-link {
    display: block;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}
.produto-image-link:hover,
.produto-image-link:focus {
    text-decoration: none;
    color: inherit;
}

/* Link no título também */
.produto-title-link {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease;
}
.produto-title-link:hover,
.produto-title-link:focus {
    color: var(--color-primary, #0432A9);
    text-decoration: none;
}

/* Wrapper da imagem */
.produto-image-wrapper {
    position: relative;
    width: 100%;
    padding-top: 100%;
    /* Aspect ratio 1:1 */
   /* background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 50%, #f8f9fa 100%);*/
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.produto-image-wrapper::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    /*  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);*/
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}

.produto-card:hover .produto-image-wrapper::after {
    opacity: 1;
}

.produto-image {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80%;
    height: 80%;
    object-fit: contain;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.1));
}

.produto-card:hover .produto-image {
    transform: translate(-50%, -50%) scale(1.08);
    filter: drop-shadow(0 12px 24px rgba(4, 50, 169, 0.2));
}

/* Conteúdo do produto */
.produto-content {
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    flex: 1;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
}

/* Título do produto */
.produto-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1a237e;
    text-align: center;
    margin: 0;
    line-height: 1.5;
    letter-spacing: -0.01em;
    transition: color 0.3s ease;
}

.produto-card:hover .produto-title {
    color: var(--color-primary);
}

/* Botão "Saiba mais" */
.produto-btn {
    background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
    color: #ffffff;
    border: none;
    border-radius: 999px;
    padding: 0.75rem 2rem;
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow:
        0 4px 12px rgba(4, 50, 169, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    width: auto;
    min-width: 150px;
    position: relative;
    overflow: hidden;
}

.produto-btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s ease;
}

.produto-btn:hover::before,
.produto-btn:focus-visible::before {
    left: 100%;
}

.produto-btn:hover,
.produto-btn:focus-visible {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow:
        0 8px 20px rgba(4, 50, 169, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.produto-btn:active {
    transform: translateY(-1px);
}

.produto-btn:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 3px;
}

/* Responsividade */
@media (max-width: 1199.98px) {
    .produtos-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
}

@media (max-width: 767.98px) {
    .produtos-destaque {
        padding: 3rem 0;
    }

    .produtos-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
        max-width: 400px;
    }

    .produto-image-wrapper {
        padding-top: 80%;
    }

    .produto-content {
        padding: 1.25rem;
    }

    .produto-title {
        font-size: 1rem;
    }

    .produto-btn {
        width: 100%;
        min-width: auto;
    }
}

@media (max-width: 575.98px) {
    .produtos-destaque-title {
        margin-bottom: 2.5rem;
    }
}

/* ==========================================================================
   Imagem Destaque com Parallax Invertido
   ========================================================================== */

.imagem-destaque-parallax {
    position: relative;
    width: 100%;
    max-width: 100vw;
    min-height: 460px;
    padding: 4rem 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    box-sizing: border-box;
    margin: 0;
    isolation: isolate;
}

/* Background estático (sem fixed para evitar bugs de scroll) */
.parallax-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    z-index: 0;
    box-sizing: border-box;
    overflow: hidden;
}

/* Overlay azul para melhorar legibilidade do texto */
.parallax-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(4, 50, 169, 0.82) 0%, rgba(6, 123, 197, 0.72) 100%);
    z-index: 1;
    pointer-events: none;
    box-sizing: border-box;
}

/* Conteúdo centralizado sobre a imagem + overlay */
.parallax-content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 4rem 0;
    color: #ffffff;
    text-align: center;
}

.parallax-title {
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 800;
    color: #ffffff;
    margin-bottom: 1.5rem;
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    line-height: 1.2;
}

.parallax-text {
    font-size: clamp(1rem, 1.5vw, 1.25rem);
    color: rgba(255, 255, 255, 0.95);
    margin-bottom: 2rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.7;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.parallax-btn {
    background: #ffffff;
    color: var(--color-primary);
    border: 2px solid #ffffff;
    border-radius: 999px;
    padding: 1rem 2.5rem;
    font-weight: 700;
    font-size: 1.05rem;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
    display: inline-block;
    position: relative;
    overflow: hidden;
}

.parallax-btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(4, 50, 169, 0.1), transparent);
    transition: left 0.5s ease;
}

.parallax-btn:hover::before,
.parallax-btn:focus-visible::before {
    left: 100%;
}

.parallax-btn:hover,
.parallax-btn:focus-visible {
    background: transparent;
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3);
}

.parallax-btn:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.8);
    outline-offset: 3px;
}

/* Ajustes para mobile - desativa parallax fixo */
@media (max-width: 991.98px) {
    .imagem-destaque-parallax {
        height: 100vh;
        min-height: 100vh;
    }

    .parallax-background {
        position: absolute;
        background-attachment: scroll;
        height: 100%;
    }

    .parallax-content {
        padding: 3rem 1rem;
    }

    .parallax-title {
        font-size: clamp(1.75rem, 5vw, 2.5rem);
        margin-bottom: 1rem;
    }

    .parallax-text {
        font-size: 1rem;
        margin-bottom: 1.5rem;
    }

    .parallax-btn {
        padding: 0.875rem 2rem;
        font-size: 1rem;
    }
}

@media (max-width: 575.98px) {
    .imagem-destaque-parallax {
        height: 100vh;
        min-height: 100vh;
    }

    .parallax-content {
        padding: 2.5rem 1rem;
    }

    .parallax-overlay {
        background: linear-gradient(135deg, rgba(4, 50, 169, 0.85) 0%, rgba(6, 123, 197, 0.75) 100%);
    }
}

/* Desativa parallax para usuários que preferem movimento reduzido */
@media (prefers-reduced-motion: reduce) {
    .parallax-background {
        position: absolute;
        background-attachment: scroll;
    }
}

/* ==========================================================================
   Produtos Mais Buscados
   ========================================================================== */

.produtos-mais-buscados {
    background: linear-gradient(180deg, #f8f9fa 0%, #ffffff 50%, #f0f4f8 100%);
    padding: 3.5rem 0;
    position: relative;
    overflow: hidden;
    z-index: 10;
    /* Stacking layer - será elevada quando entrar na viewport */
    will-change: transform, z-index;
    transition: z-index 0.3s ease;
}

/* ==========================================================================
   Stacking Layers Effect - Overlap Animation
   ========================================================================== */

/* Classe base para seções que serão elevadas */
.stacking-layer {
    position: relative;
    will-change: transform, z-index;
    transition: z-index 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Quando a seção entra na viewport, ela é elevada */
.stacking-layer.is-overlapping {
    z-index: 20;
    /* Adiciona uma sombra sutil para dar profundidade */
    box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.1);
}

/* Efeito de elevação suave */
.stacking-layer.is-overlapping::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg,
            transparent 0%,
            rgba(0, 0, 0, 0.05) 50%,
            transparent 100%);
    z-index: -1;
}

/* Ajuste para seções que vêm após "Mais Buscados" */
.stacking-layer+.stacking-layer {
    z-index: 15;
}

.stacking-layer+.stacking-layer.is-overlapping {
    z-index: 25;
}

/* Garante que a seção parallax fique sempre abaixo */
.imagem-destaque-parallax {
    z-index: 1 !important;
}

/* Animação suave de entrada para as seções */
@keyframes slideOver {
    from {
        transform: translateY(0);
        opacity: 0.95;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.stacking-layer.is-overlapping {
    animation: slideOver 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Responsividade - mantém o efeito em todas as telas */
@media (max-width: 991.98px) {
    .stacking-layer.is-overlapping {
        z-index: 20;
        box-shadow: 0 -5px 20px rgba(0, 0, 0, 0.08);
    }

    .stacking-layer+.stacking-layer.is-overlapping {
        z-index: 25;
    }
}

/* Previne quebra de layout em telas muito pequenas */
@media (max-width: 575.98px) {
    .stacking-layer.is-overlapping {
        box-shadow: 0 -3px 15px rgba(0, 0, 0, 0.06);
    }
}

/* ==========================================================================
   Blog Section
   ========================================================================== */

.blog-section {
    background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 50%, #ffffff 100%);
    padding: 5rem 0;
    position: relative;
    overflow: hidden;
    z-index: 15;
    /* Stacking layer - será elevada quando entrar na viewport */
    will-change: transform, z-index;
    transition: z-index 0.3s ease;
}

/* Elemento decorativo de fundo */
.blog-section::before {
    content: "";
    position: absolute;
    top: -10%;
    right: -5%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(4, 50, 169, 0.03) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

.blog-section::after {
    content: "";
    position: absolute;
    bottom: -10%;
    left: -5%;
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, rgba(6, 123, 197, 0.03) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

/* Header da seção */
.blog-header {
    position: relative;
    z-index: 1;
    margin-bottom: 4rem;
}

.blog-section-title {
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 1rem;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.blog-section-title .title-highlight {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    position: relative;
    display: inline-block;
}

.blog-section-title .title-highlight::after {
    content: "";
    position: absolute;
    bottom: -0.5rem;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
    border-radius: 2px;
    transform: scaleX(0.8);
}

.blog-section-subtitle {
    font-size: clamp(1rem, 2vw, 1.25rem);
    color: #6c7a96;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.7;
}

/* Grid de posts */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2.5rem;
    position: relative;
    z-index: 1;
    margin-bottom: 3rem;
}

/* Card de blog */
.blog-card {
    background: #ffffff;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    position: relative;
    height: 100%;
    border: 1px solid rgba(4, 50, 169, 0.08);
}

.blog-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
}

.blog-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(4, 50, 169, 0.15);
    border-color: rgba(4, 50, 169, 0.2);
}

.blog-card:hover::before {
    transform: scaleX(1);
}

/* Wrapper da imagem */
.blog-card-image-wrapper {
    position: relative;
    width: 100%;
    padding-top: 60%;
    /* Aspect ratio 16:10 */
    overflow: hidden;
    background: linear-gradient(135deg, #e9ecef 0%, #dee2e6 100%);
}

.blog-card-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.blog-card:hover .blog-card-image {
    transform: scale(1.1);
}

/* Overlay da imagem */
.blog-card-overlay {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 2;
}

.blog-card-category {
    display: inline-block;
    padding: 0.5rem 1rem;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(4, 50, 169, 0.3);
    backdrop-filter: blur(10px);
}

/* Conteúdo do card */
.blog-card-content {
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex: 1;
}

/* Meta informações (data e autor) */
.blog-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.875rem;
    color: #6c7a96;
    align-items: center;
}

.blog-card-date,
.blog-card-author {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.blog-card-date i,
.blog-card-author i {
    font-size: 0.75rem;
    color: var(--color-secondary);
}

/* Título do post */
.blog-card-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a237e;
    margin: 0;
    line-height: 1.4;
    letter-spacing: -0.01em;
}

.blog-card-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
    display: block;
}

.blog-card-title a:hover,
.blog-card-title a:focus-visible {
    color: var(--color-primary);
}

/* Resumo do post */
.blog-card-excerpt {
    font-size: 1rem;
    color: #6c7a96;
    line-height: 1.7;
    margin: 0;
    flex: 1;
}

/* Link "Ler mais" */
.blog-card-link {
    display: inline-flex;
    align-items: center;
    color: var(--color-primary);
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    transition: all 0.3s ease;
    margin-top: auto;
    width: fit-content;
}

.blog-card-link i {
    transition: transform 0.3s ease;
}

.blog-card-link:hover,
.blog-card-link:focus-visible {
    color: var(--color-secondary);
    transform: translateX(4px);
}

.blog-card-link:hover i,
.blog-card-link:focus-visible i {
    transform: translateX(4px);
}

.blog-card-link:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 4px;
    border-radius: 4px;
}

/* CTA da seção */
.blog-cta {
    position: relative;
    z-index: 1;
}

.blog-cta-btn {
    background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
    border: none;
    color: #ffffff;
    font-weight: 700;
    font-size: 1.05rem;
    padding: 1rem 2.5rem;
    border-radius: 999px;
    box-shadow: 0 8px 24px rgba(4, 50, 169, 0.25);
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.blog-cta-btn:hover,
.blog-cta-btn:focus-visible {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(4, 50, 169, 0.35);
    color: #ffffff;
}

.blog-cta-btn:active {
    transform: translateY(0);
}

.blog-cta-btn:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.8);
    outline-offset: 3px;
}

.blog-cta-btn i {
    transition: transform 0.3s ease;
}

.blog-cta-btn:hover i,
.blog-cta-btn:focus-visible i {
    transform: translateX(4px);
}

/* Responsividade */
@media (max-width: 1199.98px) {
    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
}

@media (max-width: 767.98px) {
    .blog-section {
        padding: 3.5rem 0;
    }

    .blog-header {
        margin-bottom: 3rem;
    }

    .blog-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
        max-width: 500px;
        margin-left: auto;
        margin-right: auto;
    }

    .blog-card-content {
        padding: 1.5rem;
    }

    .blog-card-title {
        font-size: 1.25rem;
    }

    .blog-card-excerpt {
        font-size: 0.95rem;
    }
}

@media (max-width: 575.98px) {
    .blog-section {
        padding: 3rem 0;
    }

    .blog-header {
        margin-bottom: 2.5rem;
    }

    .blog-card-content {
        padding: 1.25rem;
    }

    .blog-card-meta {
        font-size: 0.8rem;
        gap: 0.75rem;
    }

    .blog-cta-btn {
        width: 100%;
        justify-content: center;
        padding: 0.875rem 2rem;
    }
}

/* ==========================================================================
   Redes Sociais e Suporte ao Produto
   ========================================================================== */

.redes-suporte-section {
    background: #ffffff;
    padding: 5rem 0;
    position: relative;
    overflow: hidden;
    z-index: 15;
    /* Stacking layer - será elevada quando entrar na viewport */
    will-change: transform, z-index;
    transition: z-index 0.3s ease;
}

/* Título das seções */
.redes-suporte-title {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 700;
    color: #1a237e;
    margin-bottom: 2rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

/* ==========================================================================
   Redes Sociais
   ========================================================================== */

.redes-sociais-wrapper {
    margin-bottom: 5rem;
}

.redes-sociais-grid {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 2.5rem;
    max-width: 900px;
    margin: 0 auto;
}

.rede-social-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    text-decoration: none;
    color: #1a237e;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    padding: 1rem;
    border-radius: 1rem;
}

.rede-social-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    opacity: 0;
    transform: scale(0.8);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: -1;
}

.rede-social-item:hover::before,
.rede-social-item:focus-visible::before {
    opacity: 1;
    transform: scale(1.1);
}

.rede-social-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #f8f9fa;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #6c7a96;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
    position: relative;
    z-index: 1;
}

.rede-social-item:hover .rede-social-icon,
.rede-social-item:focus-visible .rede-social-icon {
    background: #ffffff;
    color: #ffffff;
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 8px 24px rgba(4, 50, 169, 0.25);
    border-color: rgba(255, 255, 255, 0.3);
}

.rede-social-label {
    font-size: 1rem;
    font-weight: 600;
    color: #1a237e;
    transition: color 0.3s ease;
    position: relative;
    z-index: 1;
}

.rede-social-item:hover .rede-social-label,
.rede-social-item:focus-visible .rede-social-label {
    color: #ffffff;
}

.rede-social-item:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 4px;
    border-radius: 1rem;
}

/* Cores específicas para cada rede social no hover */
.rede-social-item:hover .rede-social-icon i.fa-instagram,
.rede-social-item:focus-visible .rede-social-icon i.fa-instagram {
    background: none;
    -webkit-background-clip: initial;
    -webkit-text-fill-color: #ffffff;
    background-clip: initial;
    color: #ffffff;
}

.rede-social-item[aria-label="Instagram"]:hover .rede-social-icon,
.rede-social-item[aria-label="Instagram"]:focus-visible .rede-social-icon {
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
    color: #ffffff;
}

.rede-social-item[aria-label="Facebook"]:hover .rede-social-icon,
.rede-social-item[aria-label="Facebook"]:focus-visible .rede-social-icon {
    background: #1877f2;
    color: #ffffff;
}

.rede-social-item[aria-label="TikTok"]:hover .rede-social-icon,
.rede-social-item[aria-label="TikTok"]:focus-visible .rede-social-icon {
    background: #000000;
    color: #ffffff;
}

.rede-social-item[aria-label="YouTube"]:hover .rede-social-icon,
.rede-social-item[aria-label="YouTube"]:focus-visible .rede-social-icon {
    background: #ff0000;
    color: #ffffff;
}

.rede-social-item[aria-label="LinkedIn"]:hover .rede-social-icon,
.rede-social-item[aria-label="LinkedIn"]:focus-visible .rede-social-icon {
    background: #0077b5;
    color: #ffffff;
}

/* ==========================================================================
   Suporte ao Produto
   ========================================================================== */

.suporte-produto-wrapper {
    margin-top: 4rem;
}

.suporte-produto-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

.suporte-item {
    background: #ffffff;
    border-radius: 1rem;
    padding: 2.5rem 2rem;
    text-align: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid #f0f4f8;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
}

.suporte-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.suporte-item:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(4, 50, 169, 0.12);
    border-color: rgba(4, 50, 169, 0.2);
}

.suporte-item:hover::before {
    transform: scaleX(1);
}

.suporte-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(4, 50, 169, 0.1) 0%, rgba(6, 123, 197, 0.1) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--color-primary);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.suporte-item:hover .suporte-icon {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    color: #ffffff;
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 8px 24px rgba(4, 50, 169, 0.25);
}

.suporte-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a237e;
    margin: 0;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.suporte-item:hover .suporte-title {
    color: var(--color-primary);
}

.suporte-description {
    font-size: 1rem;
    color: #6c7a96;
    line-height: 1.7;
    margin: 0;
    flex: 1;
}

.suporte-link {
    display: inline-flex;
    align-items: center;
    color: var(--color-primary);
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    transition: all 0.3s ease;
    margin-top: 0.5rem;
}

.suporte-link i {
    transition: transform 0.3s ease;
}

.suporte-link:hover,
.suporte-link:focus-visible {
    color: var(--color-secondary);
    transform: translateX(4px);
}

.suporte-link:hover i,
.suporte-link:focus-visible i {
    transform: translateX(4px);
}

.suporte-link:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 4px;
    border-radius: 4px;
    padding: 0.25rem 0.5rem;
}

/* Responsividade */
@media (max-width: 991.98px) {
    .redes-suporte-section {
        padding: 4rem 0;
    }

    .redes-sociais-wrapper {
        margin-bottom: 4rem;
    }

    .redes-sociais-grid {
        gap: 2rem;
    }

    .suporte-produto-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
}

@media (max-width: 767.98px) {
    .redes-suporte-section {
        padding: 3.5rem 0;
    }

    .redes-sociais-wrapper {
        margin-bottom: 3.5rem;
    }

    .redes-sociais-grid {
        gap: 1.5rem;
    }

    .rede-social-icon {
        width: 70px;
        height: 70px;
        font-size: 1.75rem;
    }

    .rede-social-label {
        font-size: 0.9rem;
    }

    .suporte-produto-wrapper {
        margin-top: 3rem;
    }

    .suporte-produto-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
        max-width: 500px;
    }

    .suporte-item {
        padding: 2rem 1.5rem;
    }
}

@media (max-width: 575.98px) {
    .redes-suporte-section {
        padding: 3rem 0;
    }

    .redes-sociais-grid {
        gap: 1.25rem;
    }

    .rede-social-icon {
        width: 60px;
        height: 60px;
        font-size: 1.5rem;
    }

    .rede-social-label {
        font-size: 0.85rem;
    }

    .suporte-item {
        padding: 1.75rem 1.25rem;
    }

    .suporte-icon {
        width: 70px;
        height: 70px;
        font-size: 1.75rem;
    }

    .suporte-title {
        font-size: 1.25rem;
    }

    .suporte-description {
        font-size: 0.95rem;
    }
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
    background: linear-gradient(180deg, #1a237e 0%, #0d1442 100%);
    color: #ffffff;
    position: relative;
    overflow: hidden;
    margin-top: 4rem;
}

/* Elemento decorativo de fundo */
.site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(4, 50, 169, 0.3) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(6, 123, 197, 0.2) 0%, transparent 50%);
    pointer-events: none;
    z-index: 0;
}

/* Footer Main */
.footer-main {
    padding: 4rem 0 2.5rem;
    position: relative;
    z-index: 1;
}

/* Logo do Footer */
.footer-brand {
    margin-bottom: 2rem;
    position: relative;
    z-index: 2;
}

.footer-logo-link {
    display: inline-block;
    margin-bottom: 1.5rem;
    transition: transform 0.3s ease;
    position: relative;
    z-index: 3;
}

.footer-logo-link:hover,
.footer-logo-link:focus-visible {
    transform: scale(1.05);
}

.footer-logo {
    width: auto;
    height: auto;
    max-width: 180px;
    max-height: 180px;
    transition: filter 0.3s ease, opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
    opacity: 1;
    display: block;
    object-fit: contain;
    visibility: visible;
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

/* Se a logo não aparecer com o filtro, tente sem filtro primeiro */
.footer-logo-link:hover .footer-logo,
.footer-logo-link:focus-visible .footer-logo {
    filter: brightness(0) invert(1) drop-shadow(0 0 10px rgba(255, 255, 255, 0.3));
    opacity: 1;
    transform: scale(1.05);
    visibility: visible;
}

.footer-description {
    font-size: 0.95rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 2rem;
    max-width: 300px;
}

/* Redes Sociais do Footer */
.footer-social {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.footer-social-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.footer-social-links {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.footer-social-link {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 1.1rem;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
    backdrop-filter: blur(10px);
}

.footer-social-link:hover,
.footer-social-link:focus-visible {
    background: rgba(255, 255, 255, 0.2);
    transform: translateY(-3px) scale(1.1);
    border-color: rgba(255, 255, 255, 0.3);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.footer-social-link:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.8);
    outline-offset: 2px;
}

/* Cores específicas para cada rede social */
.footer-social-link[aria-label*="Instagram"]:hover {
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}

.footer-social-link[aria-label*="Facebook"]:hover {
    background: #1877f2;
}

.footer-social-link[aria-label*="TikTok"]:hover {
    background: #000000;
}

.footer-social-link[aria-label*="YouTube"]:hover {
    background: #ff0000;
}

.footer-social-link[aria-label*="LinkedIn"]:hover {
    background: #0077b5;
}

/* Colunas do Footer */
.footer-column {
    margin-bottom: 2rem;
}

.footer-column-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid rgba(255, 255, 255, 0.2);
    position: relative;
}

.footer-column-title::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 50px;
    height: 2px;
    background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
}

/* Links do Footer */
.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.footer-link {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    font-size: 0.95rem;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    width: fit-content;
    position: relative;
    padding-left: 0;
}

.footer-link::before {
    content: "";
    position: absolute;
    left: -0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
    transition: width 0.3s ease;
}

.footer-link:hover,
.footer-link:focus-visible {
    color: #ffffff;
    padding-left: 1rem;
    transform: translateX(4px);
}

.footer-link:hover::before,
.footer-link:focus-visible::before {
    width: 0.5rem;
}

.footer-link:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.5);
    outline-offset: 4px;
    border-radius: 4px;
}

.footer-link i {
    font-size: 0.875rem;
    opacity: 0.8;
}

/* Contato do Footer */
.footer-contact {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.footer-contact-item {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.footer-contact-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--color-secondary);
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.footer-contact-item:hover .footer-contact-icon {
    background: rgba(255, 255, 255, 0.2);
    transform: scale(1.1);
    color: #ffffff;
}

.footer-contact-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
}

.footer-contact-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.6);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.footer-contact-value {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.5;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-contact-value:hover,
.footer-contact-value:focus-visible {
    color: #ffffff;
}

.footer-contact-value:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.5);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Footer Bottom */
.footer-bottom {
    background: rgba(0, 0, 0, 0.3);
    padding: 1.5rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    position: relative;
    z-index: 1;
}

.footer-bottom-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.footer-copyright {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.7);
}

.footer-copyright strong {
    color: #ffffff;
    font-weight: 700;
}

.footer-legal {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.footer-legal-link {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-legal-link:hover,
.footer-legal-link:focus-visible {
    color: #ffffff;
}

.footer-legal-link:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.5);
    outline-offset: 2px;
    border-radius: 4px;
}

.footer-legal-separator {
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.875rem;
}

/* Botão Voltar ao Topo */
.footer-back-to-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    border: none;
    color: #ffffff;
    font-size: 1.25rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 20px rgba(4, 50, 169, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
}

.footer-back-to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.footer-back-to-top:hover,
.footer-back-to-top:focus-visible {
    background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
    transform: translateY(-5px) scale(1.1);
    box-shadow: 0 8px 30px rgba(4, 50, 169, 0.5);
}

.footer-back-to-top:active {
    transform: translateY(-2px) scale(1.05);
}

.footer-back-to-top:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.8);
    outline-offset: 3px;
}

/* Responsividade */
@media (max-width: 991.98px) {
    .footer-main {
        padding: 3.5rem 0 2rem;
    }

    .footer-bottom-content {
        flex-direction: column;
        text-align: center;
    }

    .footer-legal {
        justify-content: center;
    }
}

@media (max-width: 767.98px) {
    .footer-main {
        padding: 3rem 0 1.5rem;
    }

    .footer-description {
        max-width: 100%;
    }

    .footer-column {
        margin-bottom: 2.5rem;
    }

    .footer-back-to-top {
        bottom: 1.5rem;
        right: 1.5rem;
        width: 45px;
        height: 45px;
        font-size: 1.1rem;
    }
}

@media (max-width: 575.98px) {
    .footer-main {
        padding: 2.5rem 0 1.5rem;
    }

    .footer-logo {
        max-width: 150px;
    }

    .footer-description {
        font-size: 0.9rem;
    }

    .footer-column-title {
        font-size: 1.05rem;
    }

    .footer-link {
        font-size: 0.9rem;
    }

    .footer-contact-item {
        gap: 0.75rem;
    }

    .footer-contact-icon {
        width: 36px;
        height: 36px;
        font-size: 0.9rem;
    }

    .footer-contact-value {
        font-size: 0.9rem;
    }

    .footer-copyright,
    .footer-legal-link {
        font-size: 0.8rem;
    }

    .footer-back-to-top {
        bottom: 1rem;
        right: 1rem;
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
}

/* Elemento decorativo de fundo */
.produtos-mais-buscados::before {
    content: "";
    position: absolute;
    top: -20%;
    left: -10%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(6, 123, 197, 0.05) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.produtos-mais-buscados::after {
    content: "";
    position: absolute;
    bottom: -20%;
    right: -10%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(4, 50, 169, 0.05) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

/* Header da seção */
.mais-buscados-header {
    margin-bottom: 2rem;
}

.mais-buscados-title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 0.5rem;
    color: #1a237e;
}

.title-prefix {
    display: block;
    color: #24324a;
    font-weight: 600;
}

.title-highlight {
    display: block;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 800;
}

.title-suffix {
    display: block;
    color: #24324a;
    font-weight: 600;
}

.mais-buscados-subtitle {
    font-size: 0.95rem;
    color: #6c7a96;
    margin: 0;
    font-weight: 400;
}

/* Grid de produtos */
.mais-buscados-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
}

/* Card do produto mais buscado */
.mais-buscado-card {
    background: #ffffff;
    border-radius: 1.5rem;
    overflow: hidden;
    box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.08),
        0 0 0 1px rgba(4, 50, 169, 0.08);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    position: relative;
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.6s ease-out, transform 0.6s ease-out;
}

.produtos-mais-buscados.visible .mais-buscado-card:nth-child(1) {
    transition-delay: 0.1s;
}

.produtos-mais-buscados.visible .mais-buscado-card:nth-child(2) {
    transition-delay: 0.2s;
}

.produtos-mais-buscados.visible .mais-buscado-card:nth-child(3) {
    transition-delay: 0.3s;
}

.produtos-mais-buscados.visible .mais-buscado-card:nth-child(4) {
    transition-delay: 0.4s;
}

.produtos-mais-buscados.visible .mais-buscado-card {
    opacity: 1;
    transform: translateY(0);
}

.mais-buscado-card:hover {
    transform: translateY(-8px);
    box-shadow:
        0 20px 50px rgba(4, 50, 169, 0.15),
        0 0 0 1px rgba(4, 50, 169, 0.15);
}

/* Badge do produto */
.mais-buscado-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    color: #ffffff;
    padding: 0.5rem 1rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    z-index: 2;
    box-shadow: 0 4px 12px rgba(4, 50, 169, 0.25);
}

.badge-icon {
    font-size: 1rem;
}

.badge-text {
    white-space: nowrap;
}

/* Wrapper da imagem */
.mais-buscado-image-wrapper {
    position: relative;
    width: 100%;
    padding-top: 60%;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 50%, #f8f9fa 100%);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mais-buscado-image {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 75%;
    height: 75%;
    object-fit: contain;
    transition: transform 0.4s ease;
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.1));
}

.mais-buscado-card:hover .mais-buscado-image {
    transform: translate(-50%, -50%) scale(1.1);
    filter: drop-shadow(0 12px 24px rgba(4, 50, 169, 0.2));
}

/* Conteúdo do card */
.mais-buscado-content {
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
}

.mais-buscado-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a237e;
    margin: 0;
    line-height: 1.3;
}

.mais-buscado-description {
    font-size: 0.85rem;
    color: #6c7a96;
    margin: 0;
    line-height: 1.4;
}

/* Botão "Ver produto" */
.mais-buscado-btn {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    color: #ffffff;
    border: none;
    border-radius: 999px;
    padding: 0.625rem 1.25rem;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(4, 50, 169, 0.25);
    text-align: center;
    width: 100%;
    margin-top: 0.25rem;
}

.mais-buscado-btn:hover,
.mais-buscado-btn:focus-visible {
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(4, 50, 169, 0.35);
}

.mais-buscado-btn:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 3px;
}

/* Painel CTA Lateral */
.mais-buscados-cta {
    background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
    border-radius: 1.5rem;
    padding: 2rem 2rem;
    text-align: center;
    color: #ffffff;
    box-shadow:
        0 20px 60px rgba(220, 53, 69, 0.3),
        0 0 0 1px rgba(255, 255, 255, 0.1);
    position: sticky;
    top: 2rem;
    opacity: 0;
    transform: translateX(30px);
    transition: all 0.6s ease-out;
}

.produtos-mais-buscados.visible .mais-buscados-cta {
    opacity: 1;
    transform: translateX(0);
    transition-delay: 0.5s;
}

.cta-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 1rem;
    color: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
}

.cta-icon svg {
    width: 100%;
    height: 100%;
}

.cta-title {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
    color: #ffffff;
}

.cta-description {
    font-size: 0.95rem;
    line-height: 1.5;
    margin-bottom: 1.5rem;
    color: rgba(255, 255, 255, 0.95);
    opacity: 0.95;
}

.cta-btn {
    background: #ffffff;
    color: var(--color-primary);
    border: 2px solid #ffffff;
    border-radius: 999px;
    padding: 0.875rem 1.75rem;
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    justify-content: center;
}

.cta-btn:hover,
.cta-btn:focus-visible {
    background: transparent;
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.btn-icon {
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.cta-btn:hover .btn-icon,
.cta-btn:focus-visible .btn-icon {
    transform: translateX(5px);
}

.cta-btn:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.8);
    outline-offset: 3px;
}

/* Responsividade */
@media (max-width: 1199.98px) {
    .mais-buscados-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .mais-buscados-cta {
        margin-top: 3rem;
        position: relative;
        top: 0;
    }
}

@media (max-width: 991.98px) {
    .produtos-mais-buscados {
        padding: 3rem 0;
    }

    .mais-buscados-header {
        margin-bottom: 1.5rem;
    }

    .mais-buscados-title {
        font-size: clamp(1.5rem, 4vw, 2rem);
    }

    .mais-buscados-cta {
        margin-top: 2rem;
        padding: 2rem 1.75rem;
    }
}

@media (max-width: 767.98px) {
    .mais-buscado-image-wrapper {
        padding-top: 55%;
    }

    .mais-buscado-content {
        padding: 1.25rem 1.25rem;
    }

    .mais-buscados-cta {
        padding: 1.75rem 1.5rem;
    }

    .cta-title {
        font-size: 1.5rem;
    }

    .cta-icon {
        width: 50px;
        height: 50px;
    }
}

@media (max-width: 575.98px) {
    .mais-buscado-badge {
        top: 0.75rem;
        right: 0.75rem;
        padding: 0.4rem 0.8rem;
        font-size: 0.8rem;
    }

    .mais-buscado-title {
        font-size: 1.1rem;
    }

    .mais-buscado-description {
        font-size: 0.85rem;
    }
}

@media (prefers-reduced-motion: reduce) {

    .mais-buscado-card,
    .mais-buscados-cta {
        opacity: 1;
        transform: none;
    }
}

/* ==========================================================================
   Página de Contato
   ========================================================================== */

.contato-page {
    background-color: #ffffff;
}

/* Breadcrumb */
.contato-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.contato-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.contato-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before {
    color: #6c7a96;
}

.contato-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.contato-breadcrumb-wrapper .breadcrumb a:hover,
.contato-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

/* Hero de contato */
.contato-hero {
    background: linear-gradient(180deg, #ffffff 0%, #f4f6fb 80%, #eef2fb 100%);
}

.contato-hero-header {
    margin-bottom: 1.5rem;
}

.contato-hero-title {
    font-size: clamp(2rem, 3.5vw, 2.6rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 0.75rem;
    letter-spacing: -0.02em;
}

.contato-hero-subtitle {
    font-size: 1rem;
    color: #4b5563;
    max-width: 34rem;
    line-height: 1.6;
    margin-bottom: 0;
}

.contato-hero-highlights {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1.5rem;
    font-size: 0.98rem;
    color: #374151;
}

.contato-hero-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.contato-hero-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    margin-top: 0.4rem;
}

/* Cards de contato rápido */
.contato-hero-cards {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.contato-hero-card {
    display: flex;
    gap: 1rem;
    padding: 1.1rem 1.3rem;
    border-radius: 1rem;
    background: #ffffff;
    box-shadow:
        0 6px 18px rgba(15, 23, 42, 0.08),
        0 0 0 1px rgba(4, 50, 169, 0.05);
}

.contato-hero-card-icon {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    flex-shrink: 0;
    box-shadow: 0 8px 18px rgba(4, 50, 169, 0.4);
}

.contato-hero-card-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #111827;
    margin: 0 0 0.15rem;
}

.contato-hero-card-text {
    font-size: 0.95rem;
    color: #4b5563;
}

.contato-link {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 500;
}

.contato-link:hover,
.contato-link:focus-visible {
    text-decoration: underline;
}

/* Títulos de seção */
.contato-section-title {
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 700;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.contato-section-subtitle {
    font-size: 0.98rem;
    color: #6b7280;
    max-width: 32rem;
}

/* Formulário de contato */
.contato-form-section {
    background-color: #ffffff;
}

.contato-form {
    background: #ffffff;
}

.contato-fieldset {
    border: 1px solid rgba(4, 50, 169, 0.08);
    border-radius: 1rem;
    padding: 1.5rem 1.5rem 1.3rem;
    background: #fafbff;
}

.contato-fieldset-legend {
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6b7280;
    margin-bottom: 1rem;
}

.contato-form .form-label {
    font-size: 0.95rem;
    font-weight: 600;
    color: #374151;
}

.contato-form .form-control,
.contato-form .form-select {
    border-radius: 0.75rem;
    border-color: rgba(148, 163, 184, 0.7);
    font-size: 0.95rem;
}

.contato-form .form-control:focus,
.contato-form .form-select:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 0.16rem rgba(6, 123, 197, 0.22);
}

.contato-form textarea.form-control {
    resize: vertical;
    min-height: 150px;
}

.contato-privacy-note {
    font-size: 0.85rem;
    color: #6b7280;
}

.contato-submit-btn {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    border: none;
    color: #ffffff;
    font-weight: 700;
    padding: 0.9rem 2.2rem;
    border-radius: 999px;
    box-shadow: 0 8px 24px rgba(4, 50, 169, 0.35);
}

.contato-submit-btn:hover,
.contato-submit-btn:focus-visible {
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    color: #ffffff;
}

/* Coluna de informações */
.contato-info {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.contato-info-card {
    display: flex;
    gap: 1rem;
    padding: 1.1rem 1.3rem;
    border-radius: 1rem;
    background-color: #f9fafb;
    border: 1px solid rgba(148, 163, 184, 0.4);
}

.contato-info-icon {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: #e5edff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    flex-shrink: 0;
}

.contato-info-title {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    margin: 0 0 0.15rem;
}

.contato-info-text {
    font-size: 0.95rem;
    color: #4b5563;
}

/* Seção localização */
.contato-location-section {
    background: linear-gradient(180deg, #f9fafb 0%, #ffffff 100%);
    border-top: 1px solid rgba(148, 163, 184, 0.3);
}

.contato-location-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1rem;
    font-size: 0.95rem;
    color: #4b5563;
}

.contato-location-icon {
    margin-right: 0.4rem;
    color: var(--color-primary);
}

.contato-map-figure {
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
    background-color: #000;
}

.contato-map-image {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.contato-map-caption {
    font-size: 0.8rem;
    color: #e5e7eb;
    background: rgba(15, 23, 42, 0.8);
    padding: 0.6rem 1rem;
}

/* Responsividade página de contato */
@media (max-width: 991.98px) {
    .contato-hero {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }

    .contato-hero-cards {
        margin-top: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .contato-fieldset {
        padding: 1.25rem 1rem 1.1rem;
    }
}


/* ==========================================================================
   Página de Blog
   ========================================================================== */

.blog-page {
    background-color: #ffffff;
}

.blog-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.blog-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.blog-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before {
    color: #6c7a96;
}

.blog-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.blog-breadcrumb-wrapper .breadcrumb a:hover,
.blog-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

/* Hero do blog */
.blog-hero {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.1), transparent 55%),
        radial-gradient(circle at 100% 0, rgba(4, 50, 169, 0.08), transparent 60%),
        #ffffff;
}

.blog-hero-header {
    margin-bottom: 1.5rem;
}

.blog-hero-title {
    font-size: clamp(2rem, 3.8vw, 2.8rem);
    font-weight: 800;
    color: #1a237e;
    line-height: 1.2;
    margin-bottom: 0.75rem;
    letter-spacing: -0.02em;
}

.blog-hero-subtitle {
    font-size: 1rem;
    color: #4b5563;
    max-width: 34rem;
    line-height: 1.7;
    margin-bottom: 0;
}

.blog-hero-highlights {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1.5rem;
    font-size: 0.96rem;
    color: #374151;
}

.blog-hero-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.blog-hero-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    margin-top: 0.4rem;
}

.blog-featured-card {
    position: relative;
    border-radius: 1.5rem;
    padding: 2rem 1.75rem;
    background: radial-gradient(circle at 0 0, rgba(255, 255, 255, 0.18), transparent 55%),
        linear-gradient(135deg, #111827 0%, #020617 100%);
    color: #f9fafb;
    box-shadow:
        0 20px 60px rgba(15, 23, 42, 0.5),
        0 0 0 1px rgba(148, 163, 184, 0.25);
    overflow: hidden;
}

.blog-featured-card::before {
    content: "";
    position: absolute;
    inset: -40%;
    background:
        radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.4), transparent 55%),
        radial-gradient(circle at 100% 100%, rgba(4, 50, 169, 0.6), transparent 60%);
    opacity: 0.5;
    pointer-events: none;
}

.blog-featured-card>* {
    position: relative;
    z-index: 1;
}

.blog-featured-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.8rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.85);
    color: #e5e7eb;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.75rem;
    border: 1px solid rgba(148, 163, 184, 0.5);
}

.blog-featured-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 0.75rem;
}

.blog-featured-excerpt {
    font-size: 0.95rem;
    color: #e5e7eb;
    line-height: 1.6;
    margin-bottom: 1.25rem;
}

.blog-featured-btn {
    background: #ffffff;
    color: #111827;
    border-radius: 999px;
    padding: 0.75rem 1.7rem;
    font-size: 0.9rem;
    font-weight: 700;
    border: none;
    box-shadow: 0 10px 25px rgba(15, 23, 42, 0.65);
}

.blog-featured-btn:hover,
.blog-featured-btn:focus-visible {
    background: transparent;
    color: #ffffff;
    border: 1px solid rgba(249, 250, 251, 0.6);
}

/* Conteúdo principal do blog */
.blog-main-section {
    background-color: #ffffff;
}

.blog-article {
    margin-bottom: 3rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.3);
}

.blog-article-header {
    margin-bottom: 1.5rem;
}

.blog-article-category {
    display: inline-flex;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: rgba(4, 50, 169, 0.06);
    color: var(--color-primary);
    margin-bottom: 0.75rem;
}

.blog-article-title {
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 800;
    color: #111827;
    line-height: 1.3;
    margin-bottom: 0.75rem;
}

.blog-article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.9rem;
    color: #6b7280;
}

.blog-article-body {
    font-size: 0.98rem;
    color: #374151;
    line-height: 1.8;
}

.blog-article-body p+p {
    margin-top: 0.9rem;
}

.blog-related-section {
    margin-top: 1.5rem;
}

.blog-related-header {
    margin-bottom: 1.5rem;
}

.blog-related-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #111827;
}

.blog-grid-page .blog-card {
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}

/* ==========================================================================
   Blog Moderno - Design Renovado
   ========================================================================== */

/* Hero Moderno */
.blog-hero-modern {
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
    padding: 4rem 0 3rem;
    border-bottom: 1px solid rgba(4, 50, 169, 0.08);
}

.blog-hero-header-modern {
    margin-bottom: 0;
}

.blog-hero-title-modern {
    font-size: clamp(2rem, 4vw, 2.75rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 1rem;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.blog-hero-subtitle-modern {
    font-size: clamp(1rem, 2vw, 1.15rem);
    color: #6c7a96;
    line-height: 1.7;
    max-width: 700px;
    margin: 0 auto;
}

/* Seção Principal Moderna */
.blog-main-section-modern {
    background-color: #ffffff;
    padding: 3rem 0;
}

/* Card Moderno */
.blog-card-modern {
    background: #ffffff;
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid rgba(4, 50, 169, 0.06);
    position: relative;
}

.blog-card-modern:hover {
    transform: translateY(-6px);
    box-shadow: 0 8px 24px rgba(4, 50, 169, 0.12);
    border-color: rgba(4, 50, 169, 0.15);
}

/* Wrapper da Imagem Moderno */
.blog-card-image-wrapper-modern {
    position: relative;
    width: 100%;
    padding-top: 62.5%; /* Aspect ratio 16:10 */
    overflow: hidden;
    background: linear-gradient(135deg, #e9ecef 0%, #dee2e6 100%);
}

.blog-card-image-modern {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.blog-card-modern:hover .blog-card-image-modern {
    transform: scale(1.08);
}

/* Overlay Moderno */
.blog-card-overlay-modern {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 2;
}

.blog-card-category-modern {
    display: inline-block;
    padding: 0.4rem 0.9rem;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    color: var(--color-primary);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: 0.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Conteúdo do Card Moderno */
.blog-card-content-modern {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    flex: 1;
}

/* Meta Moderna */
.blog-card-meta-modern {
    display: flex;
    align-items: center;
    font-size: 0.8rem;
    color: #6c7a96;
}

.blog-card-date-modern {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.blog-card-date-modern i {
    font-size: 0.7rem;
    color: var(--color-secondary);
}

/* Título Moderno */
.blog-card-title-modern {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1a237e;
    margin: 0;
    line-height: 1.4;
    letter-spacing: -0.01em;
}

.blog-card-title-modern a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
    display: block;
}

.blog-card-title-modern a:hover,
.blog-card-title-modern a:focus-visible {
    color: var(--color-primary);
}

/* Resumo Moderno */
.blog-card-excerpt-modern {
    font-size: 0.9rem;
    color: #6c7a96;
    line-height: 1.6;
    margin: 0;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Link Moderno */
.blog-card-link-modern {
    display: inline-flex;
    align-items: center;
    color: var(--color-primary);
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
    transition: all 0.3s ease;
    margin-top: auto;
    width: fit-content;
}

.blog-card-link-modern i {
    transition: transform 0.3s ease;
}

.blog-card-link-modern:hover,
.blog-card-link-modern:focus-visible {
    color: var(--color-secondary);
    transform: translateX(4px);
}

.blog-card-link-modern:hover i,
.blog-card-link-modern:focus-visible i {
    transform: translateX(4px);
}

/* Responsividade */
@media (max-width: 991.98px) {
    .blog-card-modern {
        margin-bottom: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .blog-hero-modern {
        padding: 3rem 0 2rem;
    }
    
    .blog-card-content-modern {
        padding: 1.25rem;
    }
    
    .blog-card-title-modern {
        font-size: 1.05rem;
    }
}

/* Sidebar do blog */
.blog-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.blog-sidebar-widget {
    border-radius: 1.1rem;
    padding: 1.5rem 1.4rem;
    background-color: #f9fafb;
    border: 1px solid rgba(148, 163, 184, 0.4);
}

.blog-sidebar-title {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.9rem;
}

.blog-sidebar-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.blog-sidebar-list a {
    font-size: 0.95rem;
    color: #374151;
    text-decoration: none;
}

.blog-sidebar-list a:hover,
.blog-sidebar-list a:focus-visible {
    color: var(--color-primary);
    text-decoration: underline;
}

.blog-sidebar-posts {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.blog-sidebar-posts a {
    font-size: 0.92rem;
    color: #374151;
    text-decoration: none;
}

.blog-sidebar-posts a:hover,
.blog-sidebar-posts a:focus-visible {
    color: var(--color-primary);
    text-decoration: underline;
}

.blog-search-form .form-control {
    border-radius: 999px 0 0 999px;
}

.blog-search-btn {
    border-radius: 0 999px 999px 0;
    background-color: #e5edff;
    border-color: rgba(148, 163, 184, 0.6);
    color: var(--color-primary);
}

.blog-search-btn:hover,
.blog-search-btn:focus-visible {
    background-color: #d2e4ff;
    color: var(--color-primary-dark);
}

.blog-sidebar-cta {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    color: #ffffff;
    border-color: transparent;
}

.blog-sidebar-cta-text {
    font-size: 0.95rem;
    color: rgba(249, 250, 251, 0.9);
    margin-bottom: 1rem;
}

.blog-sidebar-cta-btn {
    background: #ffffff;
    color: var(--color-primary);
    border-radius: 999px;
    padding: 0.75rem 1.5rem;
    font-size: 0.9rem;
    font-weight: 700;
    border: none;
    width: 100%;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.3);
}

.blog-sidebar-cta-btn:hover,
.blog-sidebar-cta-btn:focus-visible {
    background: transparent;
    color: #ffffff;
    border: 1px solid rgba(249, 250, 251, 0.9);
}

/* Variação para página interna */
.blog-hero-interna {
    border-bottom: 1px solid rgba(148, 163, 184, 0.3);
}

.blog-hero-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 1.25rem;
    object-fit: cover;
    box-shadow: 0 14px 40px rgba(15, 23, 42, 0.35);
}

.blog-article-full {
    border-bottom: none;
    padding-bottom: 0;
}

@media (max-width: 991.98px) {
    .blog-hero {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }

    .blog-featured-card {
        margin-top: 0.5rem;
    }
}

@media (max-width: 767.98px) {
    .blog-sidebar-widget {
        padding: 1.3rem 1.1rem;
    }

    .blog-article {
        margin-bottom: 2rem;
        padding-bottom: 2rem;
    }
}

/* ==========================================================================
   Página Quem Somos
   ========================================================================== */

.quem-somos-page {
    background-color: #ffffff;
}

.qs-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.qs-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.qs-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before {
    color: #6c7a96;
}

.qs-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.qs-breadcrumb-wrapper .breadcrumb a:hover,
.qs-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

/* Hero */
.qs-hero {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.12), transparent 55%),
        radial-gradient(circle at 100% 0, rgba(4, 50, 169, 0.08), transparent 60%),
        #ffffff;
}

.qs-hero-header {
    margin-bottom: 1.5rem;
}

.qs-hero-title {
    font-size: clamp(2rem, 3.6vw, 2.8rem);
    font-weight: 800;
    color: #1a237e;
    line-height: 1.2;
    margin-bottom: 0.75rem;
    letter-spacing: -0.02em;
}

.qs-hero-subtitle {
    font-size: 1rem;
    color: #4b5563;
    max-width: 36rem;
    line-height: 1.7;
    margin-bottom: 0;
}

.qs-hero-highlights {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1.5rem;
    font-size: 0.96rem;
    color: #374151;
}

.qs-hero-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.qs-hero-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    margin-top: 0.4rem;
}

.qs-hero-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 1.5rem;
    object-fit: cover;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.35);
}

/* Seções genéricas */
.qs-section-header {
    margin-bottom: 1.25rem;
}

.qs-section-title {
    font-size: clamp(1.7rem, 3vw, 2.2rem);
    font-weight: 700;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.qs-section-subtitle {
    font-size: 0.98rem;
    color: #6b7280;
    max-width: 32rem;
    margin-bottom: 0;
}

/* Quando o header estiver centralizado, centralizar também o subtítulo */
.qs-section-header.text-center .qs-section-subtitle {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

/* Linha do tempo */
.qs-history-section {
    background-color: #ffffff;
}

.qs-history-intro p {
    font-size: 0.95rem;
    color: #4b5563;
}

.qs-history-intro p+p {
    margin-top: 0.6rem;
}

.qs-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}

.qs-timeline::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, var(--color-secondary), var(--color-primary));
    opacity: 0.25;
}

.qs-timeline-item {
    position: relative;
    padding-left: 3rem;
    padding-bottom: 1.8rem;
}

.qs-timeline-item:last-child {
    padding-bottom: 0;
}

.qs-timeline-dot {
    position: absolute;
    left: 8px;
    top: 0.3rem;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--color-primary);
    box-shadow: 0 0 0 4px rgba(4, 50, 169, 0.15);
}

.qs-timeline-year {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #6b7280;
}

.qs-timeline-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #111827;
    margin: 0.1rem 0 0.25rem;
}

.qs-timeline-text {
    font-size: 0.94rem;
    color: #4b5563;
    margin: 0;
}

/* Missão, visão e valores */
.qs-mvv-section {
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.qs-mvv-card {
    background: #ffffff;
    border-radius: 1.25rem;
    padding: 2rem 1.75rem;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
    border: 1px solid rgba(148, 163, 184, 0.35);
    height: 100%;
}

.qs-mvv-icon {
    width: 52px;
    height: 52px;
    border-radius: 1.1rem;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 1.4rem;
    margin-bottom: 1rem;
    box-shadow: 0 10px 25px rgba(4, 50, 169, 0.4);
}

.qs-mvv-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.6rem;
}

.qs-mvv-text {
    font-size: 0.95rem;
    color: #4b5563;
    margin-bottom: 0;
}

.qs-mvv-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.95rem;
    color: #4b5563;
}

.qs-mvv-list li::before {
    content: "•";
    margin-right: 0.4rem;
    color: var(--color-primary);
}

/* Números */
.qs-metrics-section {
    background-color: #ffffff;
}

.qs-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
}

.qs-metric-card {
    border-radius: 1.2rem;
    padding: 1.5rem 1.25rem;
    background: linear-gradient(145deg, #f9fafb 0%, #eef2ff 100%);
    border: 1px solid rgba(148, 163, 184, 0.4);
    text-align: left;
}

.qs-metric-value {
    display: block;
    font-size: 1.45rem;
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 0.2rem;
}

.qs-metric-label {
    font-size: 0.9rem;
    color: #4b5563;
}

/* Galeria */
.qs-gallery-section {
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.qs-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.qs-gallery-item img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 1.1rem;
    object-fit: cover;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.25);
}

/* CTA final */
.qs-cta-section {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.12), transparent 55%),
        radial-gradient(circle at 100% 100%, rgba(4, 50, 169, 0.18), transparent 60%),
        #0b1220;
}

.qs-cta-card {
    border-radius: 1.75rem;
    padding: 2.5rem 2.25rem;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.95), rgba(15, 23, 42, 0.9));
    color: #f9fafb;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.75rem;
    box-shadow:
        0 24px 70px rgba(15, 23, 42, 0.8),
        0 0 0 1px rgba(148, 163, 184, 0.4);
}

.qs-cta-title {
    font-size: clamp(1.6rem, 3vw, 2rem);
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: #ffffff;
}

.qs-cta-subtitle {
    font-size: 0.98rem;
    color: rgba(249, 250, 251, 0.9);
    margin-bottom: 0;
}

.qs-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
}

.qs-cta-btn-primary {
    background: #ffffff;
    color: var(--color-primary);
    border-radius: 999px;
    padding: 0.8rem 1.8rem;
    font-weight: 700;
    border: none;
}

.qs-cta-btn-secondary {
    border-radius: 999px;
    padding: 0.8rem 1.8rem;
    font-weight: 600;
    border: 1px solid rgba(249, 250, 251, 0.8);
    color: #e5e7eb;
    background: transparent;
}

.qs-cta-btn-primary:hover,
.qs-cta-btn-primary:focus-visible {
    background: #e5edff;
    color: var(--color-primary-dark);
}

.qs-cta-btn-secondary:hover,
.qs-cta-btn-secondary:focus-visible {
    background: rgba(15, 23, 42, 0.4);
    color: #ffffff;
}

/* Responsividade Quem Somos */
@media (max-width: 1199.98px) {
    .qs-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .qs-gallery-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .qs-hero {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }

    .qs-cta-card {
        padding: 2rem 1.75rem;
    }
}

@media (max-width: 767.98px) {
    .qs-mvv-card {
        padding: 1.75rem 1.4rem;
    }

    .qs-metrics-grid {
        grid-template-columns: 1fr;
    }

    .qs-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .qs-cta-card {
        padding: 1.75rem 1.4rem;
    }
}

@media (max-width: 575.98px) {
    .qs-gallery-grid {
        grid-template-columns: 1fr;
    }
}

/* Lightbox da galeria */
.qs-lightbox-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.85);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 2000;
    padding: 1.5rem;
}

.qs-lightbox-backdrop.is-open {
    display: flex;
}

.qs-lightbox-image {
    max-width: min(90vw, 1200px);
    max-height: 90vh;
    border-radius: 1.25rem;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.65);
    object-fit: contain;
}

.qs-lightbox-close {
    position: absolute;
    top: 1.25rem;
    right: 1.5rem;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: none;
    background: rgba(15, 23, 42, 0.85);
    color: #f9fafb;
    font-size: 1.6rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.qs-lightbox-close:hover,
.qs-lightbox-close:focus-visible {
    background: rgba(148, 163, 184, 0.9);
    color: #020617;
}

.qs-lightbox-open {
    overflow: hidden;
}


/* ==========================================================================
   Página Trabalhe Conosco
   ========================================================================== */

.trabalhe-page {
    background-color: #ffffff;
}

.trabalhe-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.trabalhe-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.trabalhe-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before {
    color: #6c7a96;
}

.trabalhe-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.trabalhe-breadcrumb-wrapper .breadcrumb a:hover,
.trabalhe-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

.trabalhe-hero {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.08), transparent 55%),
        #ffffff;
}

.trabalhe-hero-header {
    max-width: 680px;
}

.trabalhe-hero-title {
    font-size: clamp(2rem, 3.4vw, 2.6rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.trabalhe-hero-subtitle {
    font-size: 0.98rem;
    color: #4b5563;
    line-height: 1.7;
    margin-bottom: 0;
}

.trabalhe-form-section {
    background-color: #ffffff;
    margin-top: 60px;
}

.trabalhe-form-wrapper {
    background: #ffffff;
    border-radius: 1.5rem;
    padding: 2.25rem 2rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.35);
}

.trabalhe-form .form-label {
    font-size: 0.9rem;
    font-weight: 600;
    color: #374151;
}

.trabalhe-form .form-control,
.trabalhe-form .form-select {
    border-radius: 0.75rem;
    border-color: rgba(148, 163, 184, 0.8);
    font-size: 0.95rem;
}

.trabalhe-form .form-control:focus,
.trabalhe-form .form-select:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 0.16rem rgba(6, 123, 197, 0.22);
}

.trabalhe-required {
    color: #dc2626;
    margin-left: 0.15rem;
}

.trabalhe-note {
    display: inline-block;
    margin-left: 0.5rem;
    font-size: 0.78rem;
    color: #dc2626;
    font-weight: 600;
}

.trabalhe-submit-btn {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    border: none;
    border-radius: 999px;
    color: #ffffff;
    font-weight: 700;
    padding: 0.85rem 2.4rem;
    box-shadow: 0 14px 35px rgba(4, 50, 169, 0.45);
}

.trabalhe-submit-btn:hover,
.trabalhe-submit-btn:focus-visible {
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    color: #ffffff;
}

@media (max-width: 767.98px) {
    .trabalhe-form-wrapper {
        padding: 1.75rem 1.4rem;
    }
}

/* ==========================================================================
   Página SAC
   ========================================================================== */

.sac-page {
    background-color: #ffffff;
}

.sac-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.sac-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.sac-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before {
    color: #6c7a96;
}

.sac-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.sac-breadcrumb-wrapper .breadcrumb a:hover,
.sac-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

.sac-hero {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.08), transparent 55%),
        #ffffff;
}

.sac-hero-header {
    max-width: 720px;
}

.sac-hero-title {
    font-size: clamp(2rem, 3.4vw, 2.6rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.sac-hero-subtitle {
    font-size: 0.98rem;
    color: #4b5563;
    line-height: 1.7;
    margin-bottom: 0.75rem;
}

.sac-hero-highlights {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    font-size: 0.95rem;
    color: #374151;
}

.sac-hero-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.sac-hero-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    margin-top: 0.4rem;
}

.sac-hero-cards {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.sac-hero-card {
    display: flex;
    gap: 1rem;
    padding: 1.15rem 1.3rem;
    border-radius: 1.2rem;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.15);
    border: 1px solid rgba(148, 163, 184, 0.35);
}

.sac-hero-card-icon {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    flex-shrink: 0;
    box-shadow: 0 10px 20px rgba(4, 50, 169, 0.45);
}

.sac-hero-card-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.25rem;
}

.sac-hero-card-text {
    font-size: 0.95rem;
    color: #4b5563;
}

.sac-link {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 500;
}

.sac-link:hover,
.sac-link:focus-visible {
    text-decoration: underline;
}

.sac-form-section {
    background-color: #ffffff;
}

.sac-form-wrapper {
    background: #ffffff;
    border-radius: 1.5rem;
    padding: 2.2rem 2rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.35);
}

.sac-section-header {
    margin-bottom: 1.25rem;
}

.sac-section-title {
    font-size: clamp(1.7rem, 3vw, 2.2rem);
    font-weight: 700;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.sac-section-subtitle {
    font-size: 0.96rem;
    color: #6b7280;
    max-width: 32rem;
    margin-bottom: 0;
}

.sac-section-header.text-center .sac-section-subtitle {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.sac-form .form-label {
    font-size: 0.9rem;
    font-weight: 600;
    color: #374151;
}

.sac-form .form-control,
.sac-form .form-select {
    border-radius: 0.75rem;
    border-color: rgba(148, 163, 184, 0.8);
    font-size: 0.95rem;
}

.sac-form .form-control:focus,
.sac-form .form-select:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 0.16rem rgba(6, 123, 197, 0.22);
}

.sac-required {
    color: #dc2626;
    margin-left: 0.15rem;
}

.sac-submit-btn {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    border: none;
    border-radius: 999px;
    color: #ffffff;
    font-weight: 700;
    padding: 0.8rem 2.3rem;
    box-shadow: 0 14px 35px rgba(4, 50, 169, 0.45);
}

.sac-submit-btn:hover,
.sac-submit-btn:focus-visible {
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    color: #ffffff;
}

.sac-faq-section {
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.sac-faq-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.sac-faq-item {
    background: #ffffff;
    border-radius: 1.25rem;
    padding: 1.75rem 1.5rem;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.09);
    border: 1px solid rgba(148, 163, 184, 0.4);
}

.sac-faq-question {
    font-size: 1.05rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.5rem;
}

.sac-faq-answer {
    font-size: 0.95rem;
    color: #4b5563;
    margin: 0;
}

@media (max-width: 991.98px) {
    .sac-form-wrapper {
        padding: 2rem 1.75rem;
    }

    .sac-faq-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .sac-hero-cards {
        margin-top: 1.5rem;
    }

    .sac-form-wrapper {
        padding: 1.75rem 1.4rem;
    }

    .sac-faq-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Página Representantes
   ========================================================================== */

.representantes-page {
    background-color: #ffffff;
}

.representantes-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.representantes-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.representantes-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before {
    color: #6c7a96;
}

.representantes-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.representantes-breadcrumb-wrapper .breadcrumb a:hover,
.representantes-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

.representantes-hero {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.08), transparent 55%),
        #ffffff;
}

.representantes-hero-header {
    max-width: 780px;
}

.representantes-hero-title {
    font-size: clamp(2rem, 3.4vw, 2.6rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.representantes-hero-subtitle {
    font-size: 0.98rem;
    color: #4b5563;
    line-height: 1.7;
    margin-bottom: 0;
}

.representantes-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 1rem;
}

.representantes-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.representantes-filter-item {
    min-width: 140px;
}

.representantes-filter-item .form-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6b7280;
    margin-bottom: 0.25rem;
}

.representantes-filter-search {
    min-width: 240px;
}

.representantes-toggle-btn {
    background: #ffffff;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.8);
    font-size: 0.85rem;
    font-weight: 600;
    color: #111827;
    padding: 0.45rem 1.2rem;
}

.representantes-toggle-btn:hover,
.representantes-toggle-btn:focus-visible {
    background: #e5edff;
    color: var(--color-primary);
}

.representantes-map-card {
    background: #ffffff;
    border-radius: 1.5rem;
    padding: 1.5rem 1.5rem 1.75rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.35);
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.representantes-map-figure {
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
    min-height: 520px;
}

.representantes-map-iframe {
    display: block;
    width: 100%;
    height: 520px;
}

.representantes-destaque {
    border-radius: 1.25rem;
    background: linear-gradient(135deg, #0f172a, #020617);
    color: #e5e7eb;
    padding: 1.2rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.representantes-destaque-header {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.representantes-destaque-avatar {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-weight: 700;
}

.representantes-destaque-nome {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
    color: #ffffff;
}

.representantes-destaque-regiao {
    font-size: 0.9rem;
    margin: 0;
    color: rgba(226, 232, 240, 0.9);
}

.representantes-destaque-contatos {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.representantes-destaque-btn {
    background: rgba(15, 23, 42, 0.9);
    border-radius: 999px;
    color: #e5e7eb;
    border: 1px solid rgba(148, 163, 184, 0.7);
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.35rem 1.1rem;
}

.representantes-destaque-btn:hover,
.representantes-destaque-btn:focus-visible {
    background: #e5edff;
    color: #111827;
    border-color: transparent;
}

.representantes-list-wrapper {
    background: #ffffff;
    border-radius: 1.5rem;
    padding: 1.35rem 1.2rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.35);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.representantes-list-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.75rem;
}

.representantes-list {
    max-height: 480px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.representantes-list-col.is-collapsed .representantes-list-wrapper {
    display: none;
}

.representante-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    padding: 0.75rem 0.8rem;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.5);
    background: #ffffff;
    cursor: pointer;
    transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.2s ease;
}

.representante-card:hover {
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14);
    transform: translateY(-1px);
}

.representante-card.is-active {
    border-color: var(--color-primary);
    box-shadow: 0 12px 28px rgba(4, 50, 169, 0.35);
}

.representante-card.is-hidden {
    display: none;
}

.representante-avatar {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-weight: 700;
    font-size: 0.85rem;
}

.representante-content {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.representante-nome {
    font-size: 0.98rem;
    font-weight: 700;
    color: #111827;
    margin: 0;
}

.representante-regiao {
    font-size: 0.9rem;
    color: #4b5563;
    margin: 0;
}

.representante-contato {
    font-size: 0.82rem;
    color: #6b7280;
    margin: 0;
}

.representante-badge {
    align-self: flex-start;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: rgba(4, 50, 169, 0.07);
    color: var(--color-primary);
}

@media (max-width: 991.98px) {
    .representantes-toolbar {
        align-items: flex-start;
    }

    .representantes-list {
        max-height: 360px;
    }
}

@media (max-width: 767.98px) {
    .representantes-filter-search {
        min-width: 100%;
    }

    .representantes-map-card {
        padding: 1.25rem 1rem 1.5rem;
    }

    .representantes-list-wrapper {
        padding: 1.25rem 1rem;
    }
}

/* ==========================================================================
   Página Pontos de Venda
   ========================================================================== */

.pontos-page {
    background-color: #ffffff;
}

.pontos-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.pontos-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.pontos-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before {
    color: #6b7280;
}

.pontos-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.pontos-breadcrumb-wrapper .breadcrumb a:hover,
.pontos-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

.pontos-hero {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.08), transparent 55%),
        #ffffff;
}

.pontos-hero-header {
    max-width: 780px;
}

.pontos-hero-title {
    font-size: clamp(2rem, 3.4vw, 2.6rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.pontos-hero-subtitle {
    font-size: 0.98rem;
    color: #4b5563;
    line-height: 1.7;
    margin-bottom: 0;
}

.pontos-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 1rem;
}

.pontos-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.pontos-filter-item {
    min-width: 140px;
}

.pontos-filter-item .form-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6b7280;
    margin-bottom: 0.25rem;
}

.pontos-filter-search {
    min-width: 260px;
}

.pontos-toggle-btn {
    background: #ffffff;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.8);
    font-size: 0.85rem;
    font-weight: 600;
    color: #111827;
    padding: 0.45rem 1.2rem;
}

.pontos-toggle-btn:hover,
.pontos-toggle-btn:focus-visible {
    background: #e5edff;
    color: var(--color-primary);
}

/* Empty-state: aparece antes do usuário escolher um estado */
.pontos-empty-state {
    background: linear-gradient(135deg, #f8fafc 0%, #e0e7ff 100%);
    border: 1px solid rgba(148, 163, 184, 0.3);
    border-radius: 16px;
    padding: 3rem 1.5rem;
    margin-bottom: 2rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.pontos-empty-state i {
    color: var(--color-primary, #0432A9);
    opacity: 0.65;
}

.pontos-empty-state h2 {
    color: var(--color-primary, #0432A9);
    font-weight: 700;
}

.pontos-empty-state p {
    font-size: 1.05rem;
}

.pontos-list-wrapper {
    background: #ffffff;
    border-radius: 1.5rem;
    padding: 1.4rem 1.2rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.35);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.pontos-list-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.75rem;
}

.pontos-list {
    max-height: 520px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.pontos-list-col.is-collapsed .pontos-map-col {
    display: none;
}

.ponto-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    padding: 0.85rem 0.9rem;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.6);
    background: #ffffff;
    cursor: pointer;
    transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.2s ease;
}

.ponto-card:hover {
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
    transform: translateY(-1px);
}

.ponto-card.is-active {
    border-color: var(--color-primary);
    box-shadow: 0 12px 28px rgba(4, 50, 169, 0.35);
}

.ponto-card.is-hidden {
    display: none;
}

.ponto-icon {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
}

.ponto-content {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.ponto-nome {
    font-size: 0.98rem;
    font-weight: 700;
    color: #111827;
    margin: 0;
}

.ponto-endereco {
    font-size: 0.9rem;
    color: #4b5563;
    margin: 0;
}

.ponto-contato {
    font-size: 0.82rem;
    color: #6b7280;
    margin: 0;
}

.ponto-badge {
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: rgba(4, 50, 169, 0.07);
    color: var(--color-primary);
}

.ponto-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.4rem;
}

.ponto-directions-btn {
    border-radius: 999px;
    border: 1px solid rgba(4, 50, 169, 0.25);
    padding: 0.25rem 0.95rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-primary);
    background: #ffffff;
    text-decoration: none;
    white-space: nowrap;
}

/* Telefone clicável no card — herda cor do parágrafo */
.ponto-contato-link {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dashed transparent;
    transition: color 0.18s ease, border-color 0.18s ease;
}

.ponto-contato-link:hover,
.ponto-contato-link:focus-visible {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
}

/* ===== UX MOBILE — pontos-vendas ===== */
@media (max-width: 768px) {
    /* (1) Título "Pontos de Venda" da lista é redundante com o H1 do hero */
    .pontos-list-title { display: none; }

    /* (2) Botão "Exibir/Ocultar mapa" não faz sentido em mobile (mapa some) */
    .pontos-toggle-btn { display: none; }

    /* (3) Card empilha: linha 1 = ícone + conteúdo; linha 2 = actions full-width abaixo */
    .ponto-card {
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "icon content"
            "actions actions";
        gap: 0.6rem 0.75rem;
    }
    .ponto-icon { grid-area: icon; }
    .ponto-content { grid-area: content; min-width: 0; } /* min-width:0 deixa truncar */
    .ponto-actions {
        grid-area: actions;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        padding-top: 0.5rem;
        border-top: 1px solid rgba(148, 163, 184, 0.25);
        margin-top: 0.25rem;
    }

    /* Endereço em mobile pode quebrar palavra longa */
    .ponto-endereco { overflow-wrap: anywhere; }
}

.ponto-directions-btn:hover,
.ponto-directions-btn:focus-visible {
    background: #e5edff;
    color: var(--color-primary-dark);
    border-color: rgba(4, 50, 169, 0.6);
}

.pontos-map-card {
    background: #ffffff;
    border-radius: 1.5rem;
    padding: 1.5rem 1.4rem 1.75rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.35);
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.pontos-map-figure {
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
    min-height: 520px;
}

.pontos-map-iframe {
    display: block;
    width: 100%;
    height: 520px;
}

.pontos-destaque {
    border-radius: 1.25rem;
    background: linear-gradient(135deg, #0f172a, #020617);
    color: #e5e7eb;
    padding: 1.2rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.pontos-destaque-header {
    display: flex;
    gap: 0.8rem;
    align-items: center;
}

.pontos-destaque-icon {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0f172a;
}

.pontos-destaque-nome {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
    color: #ffffff;
}

.pontos-destaque-endereco {
    font-size: 0.9rem;
    margin: 0;
    color: rgba(226, 232, 240, 0.9);
}

.pontos-destaque-contatos {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.pontos-destaque-btn {
    background: rgba(15, 23, 42, 0.9);
    border-radius: 999px;
    color: #e5e7eb;
    border: 1px solid rgba(148, 163, 184, 0.7);
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.35rem 1.1rem;
}

.pontos-destaque-btn:hover,
.pontos-destaque-btn:focus-visible {
    background: #e5edff;
    color: #111827;
    border-color: transparent;
}

@media (max-width: 991.98px) {
    .pontos-list {
        max-height: 360px;
    }

    .pontos-map-card {
        margin-top: 0.5rem;
    }
}

@media (max-width: 767.98px) {
    .pontos-filter-search {
        min-width: 100%;
    }

    .pontos-list-wrapper {
        padding: 1.25rem 1rem;
    }

    .pontos-map-card {
        padding: 1.25rem 1rem 1.6rem;
    }
}

/* ==========================================================================
   Página Seja Representante
   ========================================================================== */

.seja-rep-page {
    background-color: #ffffff;
}

.seja-rep-breadcrumb {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.seja-rep-breadcrumb .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.seja-rep-breadcrumb .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.seja-rep-breadcrumb .breadcrumb a:hover {
    text-decoration: underline;
}

.seja-rep-hero {
    background: linear-gradient(135deg, #0432a9 0%, #067bc5 50%, #0498d6 100%);
    color: #ffffff;
}

.seja-rep-hero-title {
    font-size: clamp(2rem, 3.6vw, 2.8rem);
    font-weight: 800;
    margin-bottom: 0.75rem;
}

.seja-rep-hero-subtitle {
    font-size: 1.05rem;
    line-height: 1.7;
    opacity: 0.92;
    margin-bottom: 1.5rem;
}

.seja-rep-hero-icon {
    font-size: 8rem;
    opacity: 0.15;
}

.seja-rep-benefits {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.seja-rep-benefit {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: rgba(255, 255, 255, 0.12);
    border-radius: 0.75rem;
    padding: 0.7rem 1rem;
    font-size: 0.9rem;
    font-weight: 600;
}

.seja-rep-benefit i {
    font-size: 1.1rem;
    opacity: 0.85;
}

.seja-rep-form-section {
    background: #f8f9fa;
}

.seja-rep-form {
    background: #ffffff;
    border-radius: 1.5rem;
    padding: 2rem 2.25rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.1);
    border: 1px solid rgba(148, 163, 184, 0.3);
}

.seja-rep-form-section-header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--color-primary);
}

.seja-rep-form-section-header i {
    font-size: 1.2rem;
    color: var(--color-primary);
}

.seja-rep-form-section-header h2 {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1a237e;
    margin: 0;
}

.seja-rep-form .form-label {
    font-size: 0.88rem;
    font-weight: 600;
    color: #374151;
}

.seja-rep-form .form-control,
.seja-rep-form .form-select {
    border-radius: 0.6rem;
    border: 1px solid #d1d5db;
    padding: 0.55rem 0.85rem;
    font-size: 0.92rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.seja-rep-form .form-control:focus,
.seja-rep-form .form-select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(4, 50, 169, 0.12);
}

.seja-rep-form-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e5e7eb;
}

.seja-rep-form-required {
    font-size: 0.82rem;
    color: #6b7280;
    margin: 0;
}

.seja-rep-btn-submit {
    background: linear-gradient(135deg, #0432a9, #067bc5);
    color: #ffffff;
    border: none;
    border-radius: 999px;
    padding: 0.7rem 2.5rem;
    font-size: 1rem;
    font-weight: 700;
    transition: transform 0.2s, box-shadow 0.2s;
}

.seja-rep-btn-submit:hover,
.seja-rep-btn-submit:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(4, 50, 169, 0.35);
    color: #ffffff;
}

.seja-rep-success {
    text-align: center;
    padding: 3rem 2rem;
    background: #ffffff;
    border-radius: 1.5rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.1);
    border: 1px solid rgba(148, 163, 184, 0.3);
}

.seja-rep-success i {
    font-size: 4rem;
    color: #10b981;
    margin-bottom: 1rem;
}

.seja-rep-success h2 {
    font-size: 1.5rem;
    font-weight: 800;
    color: #111827;
    margin-bottom: 0.5rem;
}

.seja-rep-success p {
    font-size: 1rem;
    color: #4b5563;
    margin-bottom: 1.5rem;
}

.seja-rep-btn-back {
    background: var(--color-primary);
    color: #ffffff;
    border-radius: 999px;
    padding: 0.55rem 2rem;
    font-weight: 600;
}

.seja-rep-btn-back:hover {
    background: var(--color-primary-dark);
    color: #ffffff;
}

@media (max-width: 767.98px) {
    .seja-rep-benefits {
        grid-template-columns: 1fr;
    }

    .seja-rep-form {
        padding: 1.5rem 1.25rem;
    }

    .seja-rep-form-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .seja-rep-btn-submit {
        width: 100%;
    }
}

/* ==========================================================================
   Página Assistência Técnica
   ========================================================================== */

.assist-page {
    background-color: #ffffff;
}

.assist-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.assist-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.assist-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before {
    color: #6b7280;
}

.assist-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.assist-breadcrumb-wrapper .breadcrumb a:hover,
.assist-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

.assist-hero {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.08), transparent 55%),
        #ffffff;
}

.assist-hero-header {
    max-width: 780px;
}

.assist-hero-title {
    font-size: clamp(2rem, 3.4vw, 2.6rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.assist-hero-subtitle {
    font-size: 0.98rem;
    color: #4b5563;
    line-height: 1.7;
    margin-bottom: 0;
}

.assist-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 1rem;
}

.assist-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.assist-filter-item {
    min-width: 140px;
}

.assist-filter-item .form-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6b7280;
    margin-bottom: 0.25rem;
}

.assist-filter-search {
    min-width: 260px;
}

.assist-toggle-btn {
    background: #ffffff;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.8);
    font-size: 0.85rem;
    font-weight: 600;
    color: #111827;
    padding: 0.45rem 1.2rem;
}

.assist-toggle-btn:hover,
.assist-toggle-btn:focus-visible {
    background: #e5edff;
    color: var(--color-primary);
}

.assist-list-wrapper {
    background: #ffffff;
    border-radius: 1.5rem;
    padding: 1.4rem 1.2rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.35);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.assist-list-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.75rem;
}

.assist-list {
    max-height: 520px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.assist-list-col.is-collapsed .assist-map-col {
    display: none;
}

.assist-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    padding: 0.85rem 0.9rem;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.6);
    background: #ffffff;
    cursor: pointer;
    transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.2s ease;
}

.assist-card:hover {
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
    transform: translateY(-1px);
}

.assist-card.is-active {
    border-color: var(--color-primary);
    box-shadow: 0 12px 28px rgba(4, 50, 169, 0.35);
}

.assist-card.is-hidden {
    display: none;
}

.assist-icon {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
}

.assist-content {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.assist-nome {
    font-size: 0.98rem;
    font-weight: 700;
    color: #111827;
    margin: 0;
}

.assist-endereco {
    font-size: 0.9rem;
    color: #4b5563;
    margin: 0;
}

.assist-contato {
    font-size: 0.82rem;
    color: #6b7280;
    margin: 0;
}

.assist-badge {
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: rgba(4, 50, 169, 0.07);
    color: var(--color-primary);
}

.assist-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.4rem;
}

.assist-directions-btn {
    border-radius: 999px;
    border: 1px solid rgba(4, 50, 169, 0.25);
    padding: 0.25rem 0.95rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-primary);
    background: #ffffff;
    text-decoration: none;
    white-space: nowrap;
}

.assist-directions-btn:hover,
.assist-directions-btn:focus-visible {
    background: #e5edff;
    color: var(--color-primary-dark);
    border-color: rgba(4, 50, 169, 0.6);
}

.assist-map-card {
    background: #ffffff;
    border-radius: 1.5rem;
    padding: 1.5rem 1.4rem 1.75rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.35);
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.assist-map-figure {
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
    min-height: 520px;
}

.assist-map-iframe {
    display: block;
    width: 100%;
    height: 520px;
}

.assist-destaque {
    border-radius: 1.25rem;
    background: linear-gradient(135deg, #0f172a, #020617);
    color: #e5e7eb;
    padding: 1.2rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.assist-destaque-header {
    display: flex;
    gap: 0.8rem;
    align-items: center;
}

.assist-destaque-icon {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0f172a;
}

.assist-destaque-nome {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
    color: #ffffff;
}

.assist-destaque-endereco {
    font-size: 0.9rem;
    margin: 0;
    color: rgba(226, 232, 240, 0.9);
}

.assist-destaque-contatos {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.assist-destaque-btn {
    background: rgba(15, 23, 42, 0.9);
    border-radius: 999px;
    color: #e5e7eb;
    border: 1px solid rgba(148, 163, 184, 0.7);
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.35rem 1.1rem;
}

.assist-destaque-btn:hover,
.assist-destaque-btn:focus-visible {
    background: #e5edff;
    color: #111827;
    border-color: transparent;
}

@media (max-width: 991.98px) {
    .assist-list {
        max-height: 360px;
    }

    .assist-map-card {
        margin-top: 0.5rem;
    }
}

@media (max-width: 767.98px) {
    .assist-filter-search {
        min-width: 100%;
    }

    .assist-list-wrapper {
        padding: 1.25rem 1rem;
    }

    .assist-map-card {
        padding: 1.25rem 1rem 1.6rem;
    }
}

/* ==========================================================================
   Página Pedidos
   ========================================================================== */

.pedidos-page {
    background-color: #ffffff;
}

.pedidos-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.pedidos-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.pedidos-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.pedidos-breadcrumb-wrapper .breadcrumb a:hover,
.pedidos-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

.pedidos-hero {
    background: linear-gradient(180deg, #ffffff 0%, #f5f7fb 70%, #edf1fb 100%);
}

.pedidos-hero-header {
    max-width: 40rem;
}

.pedidos-hero-title {
    font-size: clamp(2rem, 3vw, 2.6rem);
    font-weight: 800;
    color: #1a237e;
    letter-spacing: -0.02em;
    margin-bottom: 0.75rem;
}

.pedidos-hero-subtitle {
    font-size: 0.98rem;
    color: #4b5563;
    line-height: 1.6;
}

.pedidos-selecao-section {
    margin-top: 60px;
}

.pedidos-hero-highlight {
    padding: 1.2rem 1.5rem;
    border-radius: 1rem;
    background: radial-gradient(circle at top left, rgba(6, 123, 197, 0.12), transparent 55%),
        radial-gradient(circle at bottom right, rgba(4, 50, 169, 0.12), transparent 60%),
        #ffffff;
    border: 1px solid rgba(4, 50, 169, 0.12);
    box-shadow: 0 14px 38px rgba(7, 22, 51, 0.12);
    font-size: 0.95rem;
    color: #24324a;
}

.pedidos-card {
    background-color: #ffffff;
    border-radius: 1.25rem;
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    padding: 1.75rem 2rem;
}

.pedidos-card-header {
    margin-bottom: 1.25rem;
}

.pedidos-section-title {
    font-weight: 700;
    color: #111827;
}

.pedidos-section-subtitle {
    font-size: 0.94rem;
    color: #6b7280;
}

.pedidos-add-btn {
    background-color: #16a34a;
    border-color: #16a34a;
    font-weight: 600;
    color: #ffffff;
    padding-block: 0.7rem;
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(22, 163, 74, 0.35);
}

.pedidos-add-btn:hover,
.pedidos-add-btn:focus-visible {
    background-color: #15803d;
    border-color: #15803d;
    color: #ffffff;
}

.pedidos-finalizar-btn,
.pedidos-submit-btn {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    border: none;
    font-weight: 600;
    padding-inline: 1.9rem;
    padding-block: 0.8rem;
    border-radius: 999px;
    color: #ffffff;
    box-shadow: 0 12px 30px rgba(4, 50, 169, 0.4);
}

.pedidos-finalizar-btn[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
    box-shadow: none;
}

.pedidos-finalizar-btn:hover:not([disabled]),
.pedidos-finalizar-btn:focus-visible:not([disabled]),
.pedidos-submit-btn:hover,
.pedidos-submit-btn:focus-visible {
    background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));
    color: #ffffff;
}

.pedidos-table thead th {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6b7280;
    border-bottom-color: rgba(148, 163, 184, 0.4);
}

.pedidos-table tbody td {
    vertical-align: middle;
    border-top-color: rgba(226, 232, 240, 0.8);
}

.pedidos-empty-row {
    background-color: #f9fafb;
}

.pedidos-produto-nome {
    font-weight: 600;
    color: #111827;
}

.pedidos-produto-thumb {
    border-radius: 0.75rem;
    background-color: #ffffff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18);
    object-fit: contain;
}

.pedidos-quantidade {
    font-weight: 600;
    color: #111827;
}

.pedidos-remover-btn {
    background-color: #f3f4f6;
    border-color: #e5e7eb;
    color: #4b5563;
    border-radius: 999px;
    padding-inline: 1.1rem;
}

.pedidos-remover-btn:hover,
.pedidos-remover-btn:focus-visible {
    background-color: #fee2e2;
    border-color: #fecaca;
    color: #b91c1c;
}

.pedidos-itens-resumo {
    font-size: 0.9rem;
}

.finalizar-pedido-page .pedidos-hero-btn-secondary {
    background-color: #eef2ff;
    border-radius: 999px;
    border: 1px solid rgba(79, 70, 229, 0.25);
    color: #3730a3;
    font-weight: 500;
    padding-inline: 1.4rem;
}

.finalizar-pedido-page .pedidos-hero-btn-secondary:hover,
.finalizar-pedido-page .pedidos-hero-btn-secondary:focus-visible {
    background-color: #e0e7ff;
}

.pedidos-resumo-thumb-wrapper {
    width: 64px;
    height: 64px;
    border-radius: 0.9rem;
    overflow: hidden;
    background-color: #ffffff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
}

.pedidos-resumo-thumb {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.pedidos-resumo-produto-nome {
    font-weight: 600;
    color: #111827;
}

.pedidos-resumo-quantidade {
    font-weight: 600;
    color: #111827;
}

@media (max-width: 767.98px) {
    .pedidos-card {
        padding-inline: 1.25rem;
    }

    .pedidos-hero-highlight {
        margin-top: 0.5rem;
    }
}

/* ==========================================================================
   Página Produtos
   ========================================================================== */

.produtos-page {
    background-color: #ffffff;
}

.produtos-breadcrumb-wrapper {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(4, 50, 169, 0.06);
    padding-block: 0.75rem;
}

.produtos-breadcrumb-wrapper .breadcrumb {
    font-size: 0.9rem;
    margin-bottom: 0;
}

.produtos-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before {
    color: #6b7280;
}

.produtos-breadcrumb-wrapper .breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}

.produtos-breadcrumb-wrapper .breadcrumb a:hover,
.produtos-breadcrumb-wrapper .breadcrumb a:focus-visible {
    text-decoration: underline;
}

.produtos-hero {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.08), transparent 55%),
        #ffffff;
}

.produtos-hero-header {
    max-width: 780px;
}

.produtos-hero-title {
    font-size: clamp(2rem, 3.4vw, 2.6rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.produtos-hero-subtitle {
    font-size: 0.98rem;
    color: #4b5563;
    line-height: 1.7;
    margin-bottom: 0;
}

.produtos-categorias {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-bottom: 1rem;
    position: relative;
}

.produtos-categorias-wrap {
    position: relative;
}

.produtos-categorias-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    background: #ffffff;
    color: var(--color-primary);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.18);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease, color 0.2s ease;
}

.produtos-categorias-arrow.is-prev {
    left: 0;
}

.produtos-categorias-arrow.is-next {
    right: 0;
}

.produtos-categorias-wrap.has-carousel {
    padding-inline: 2.4rem;
}

.produtos-categorias-wrap.has-carousel .produtos-categorias-arrow {
    opacity: 1;
    pointer-events: auto;
}

.produtos-categorias-wrap.has-carousel .produtos-categorias-arrow:hover,
.produtos-categorias-wrap.has-carousel .produtos-categorias-arrow:focus-visible {
    color: var(--color-primary-dark);
    transform: translateY(-50%) scale(1.05);
}

.produtos-categorias-wrap.has-carousel .produtos-categorias-arrow[disabled] {
    opacity: 0.35;
    pointer-events: none;
}

.produtos-categoria-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.55);
    padding: 0.5rem 1.05rem;
    font-size: 0.88rem;
    font-weight: 600;
    background: #ffffff;
    color: #111827;
    text-decoration: none;
    line-height: 1;
    transition: all 0.22s ease;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.produtos-categoria-pill.is-active {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    color: #ffffff;
    border-color: transparent;
    box-shadow: 0 10px 20px rgba(4, 50, 169, 0.24);
}

.produtos-categoria-pill:hover,
.produtos-categoria-pill:focus-visible {
    background: #eef4ff;
    color: var(--color-primary);
    border-color: rgba(4, 50, 169, 0.28);
    transform: translateY(-1px);
    text-decoration: none;
}

.produtos-categoria-pill.is-active:hover,
.produtos-categoria-pill.is-active:focus-visible {
    color: #ffffff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
}

.produtos-categorias.is-carousel {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    scroll-behavior: smooth;
    padding-bottom: 0.35rem;
    -webkit-overflow-scrolling: touch;
}

.produtos-categorias.is-carousel .produtos-categoria-pill {
    flex: 0 0 auto;
}

.produtos-categorias.is-carousel::-webkit-scrollbar {
    height: 0;
}

.produtos-categorias.is-carousel::after {
    content: "";
    position: sticky;
    right: 0;
    width: 48px;
    flex: 0 0 48px;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), #ffffff 82%);
}

@media (max-width: 575.98px) {
    .produtos-categorias-wrap.has-carousel {
        padding-inline: 2rem;
    }

    .produtos-categorias-arrow {
        width: 30px;
        height: 30px;
    }
}

.produtos-resumo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-bottom: 1.35rem;
    padding: 0.75rem 0.95rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: linear-gradient(180deg, #ffffff, #f8fbff);
}

.produtos-resumo-filtro {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
    color: #0f172a;
}

.produtos-resumo-total {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: #475569;
}

.produtos-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem;
}

.produtos-grid .produto-card {
    opacity: 1;
    transform: none;
}

.produto-card {
    background: #ffffff;
    border-radius: 1.25rem;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.35);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.produto-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.2);
    border-color: rgba(4, 50, 169, 0.6);
}

.produto-card.is-hidden {
    display: none;
}

.produtos-empty-state {
    grid-column: 1 / -1;
    max-width: 540px;
    margin: 0 auto;
    text-align: center;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    padding: 1.4rem 1rem;
}

.produtos-empty-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 0.7rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(4, 50, 169, 0.1);
    color: var(--color-primary);
    font-size: 1.15rem;
}

.produtos-empty-title {
    margin: 0 0 0.3rem;
    color: #0f172a;
    font-size: 1rem;
    font-weight: 700;
}

.produtos-empty-text {
    margin: 0;
    color: #64748b;
    font-size: 0.9rem;
}

.produto-image-wrapper {
    width: 100%;
    height: 230px;
    /*  background: linear-gradient(135deg, #f8fafc, #e5e7eb);*/
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.produto-image {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.produto-content {
    padding: 1.25rem 1.1rem 1.3rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.produto-nome {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    margin: 0;
}

.produto-categoria {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-primary);
    margin: 0;
}

.produto-descricao {
    font-size: 0.9rem;
    color: #4b5563;
    margin: 0.2rem 0 0.4rem;
}

.produto-acoes {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.produto-btn-detalhes {
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
    border-radius: 999px;
    color: #ffffff;
    padding: 0.45rem 1.3rem;
    font-size: 0.85rem;
    font-weight: 600;
    border: none;
}

.produto-btn-detalhes:hover,
.produto-btn-detalhes:focus-visible {
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    color: #ffffff;
}

.produto-link-catalogo {
    font-size: 0.8rem;
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 500;
}

.produto-link-catalogo:hover,
.produto-link-catalogo:focus-visible {
    text-decoration: underline;
}

@media (max-width: 1199.98px) {
    .produtos-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .produtos-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .produtos-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Página de Pesquisa
   ========================================================================== */
.pesquisa-hero {
    background: radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.08), transparent 55%), #ffffff;
}

.pesquisa-title {
    font-size: clamp(1.8rem, 3.2vw, 2.4rem);
    font-weight: 800;
    color: #1a237e;
    margin-bottom: 0.5rem;
}

.pesquisa-subtitle {
    margin: 0 0 1rem;
    color: #4b5563;
}

.pesquisa-form {
    display: flex;
    gap: 0.65rem;
    align-items: center;
}

.pesquisa-input {
    border-radius: 999px;
    min-height: 46px;
    border-color: rgba(148, 163, 184, 0.55);
    padding-inline: 1rem;
}

.pesquisa-btn {
    border-radius: 999px;
    min-height: 46px;
    padding-inline: 1.2rem;
    border: none;
    color: #fff;
    font-weight: 700;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
}

.pesquisa-btn:hover,
.pesquisa-btn:focus-visible {
    color: #fff;
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
}

.pesquisa-meta {
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: linear-gradient(180deg, #fff, #f8fbff);
    border-radius: 0.9rem;
    padding: 0.85rem 1rem;
}

.pesquisa-section-title {
    font-size: 1.1rem;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 0.9rem;
}

.pesquisa-lista {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.pesquisa-card {
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: #fff;
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.pesquisa-tag {
    margin: 0 0 0.4rem;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--color-primary);
    background: rgba(4, 50, 169, 0.08);
    border-radius: 999px;
    padding: 0.25rem 0.7rem;
}

.pesquisa-card-title {
    margin: 0;
    color: #111827;
    font-size: 1rem;
    font-weight: 700;
}

.pesquisa-card-text {
    margin: 0.55rem 0 0.8rem;
    color: #4b5563;
    font-size: 0.92rem;
}

.pesquisa-card-link {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--color-primary);
    text-decoration: none;
}

.pesquisa-card-link:hover,
.pesquisa-card-link:focus-visible {
    text-decoration: underline;
}

@media (max-width: 767.98px) {
    .pesquisa-form {
        flex-direction: column;
        align-items: stretch;
    }

    .pesquisa-lista {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Página Calculadora de Bombas
   ========================================================================== */
.calc-page {
    background: linear-gradient(180deg, #f8fbff 0%, #ffffff 36%);
}

.calc-hero {
    background:
        radial-gradient(circle at 0 0, rgba(6, 123, 197, 0.12), transparent 46%),
        radial-gradient(circle at 100% 30%, rgba(4, 50, 169, 0.08), transparent 44%);
}

.calc-header {
    max-width: 760px;
    margin: 0 auto 1.25rem;
}

.calc-title {
    font-size: clamp(2rem, 3.4vw, 2.8rem);
    color: #102a88;
    margin-bottom: 0.45rem;
    font-weight: 800;
}

.calc-subtitle {
    margin: 0;
    color: #475569;
}

.calc-form-card {
    max-width: 860px;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 1rem;
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.08);
    padding: 1rem;
}

.calc-input {
    border-radius: 0.75rem;
    min-height: 46px;
    border-color: rgba(148, 163, 184, 0.45);
}

.calc-input:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 0.18rem rgba(6, 123, 197, 0.2);
}

.calc-submit-btn {
    min-height: 48px;
    border-radius: 0.85rem;
    border: none;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
}

.calc-submit-btn:hover,
.calc-submit-btn:focus-visible {
    color: #fff;
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
}

.calc-result-section {
    background: transparent;
}

.calc-result-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    margin-bottom: 0.7rem;
}

.calc-result-title {
    margin: 0;
    color: #0f172a;
    font-size: 1.45rem;
    font-weight: 800;
}

.calc-amt-pill {
    border-radius: 999px;
    padding: 0.5rem 0.9rem;
    background: rgba(4, 50, 169, 0.08);
    color: var(--color-primary);
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}

.calc-amt-label {
    font-size: 0.8rem;
    opacity: 0.9;
}

.calc-formula-text {
    color: #475569;
    margin-bottom: 1rem;
}

.calc-ideal-card {
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.08);
    padding: 1.2rem 1.1rem;
}

.calc-ideal-badge {
    display: inline-flex;
    border-radius: 999px;
    padding: 0.28rem 0.72rem;
    background: rgba(16, 185, 129, 0.12);
    color: #047857;
    font-size: 0.78rem;
    font-weight: 700;
}

.calc-ideal-model {
    margin: 0.65rem 0 0.3rem;
    font-size: 1.3rem;
    color: #0f172a;
    font-weight: 800;
}

.calc-ideal-category,
.calc-ideal-product {
    color: #475569;
}

.calc-ideal-btn {
    border-radius: 999px;
    border: none;
    color: #fff;
    font-weight: 700;
    background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
}

.calc-ideal-btn:hover,
.calc-ideal-btn:focus-visible {
    color: #fff;
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
}

.calc-secondary-btn {
    border-radius: 999px;
    border: 1px solid rgba(4, 50, 169, 0.25);
    background: #fff;
    color: var(--color-primary);
    font-weight: 700;
}

.calc-secondary-btn:hover,
.calc-secondary-btn:focus-visible {
    color: var(--color-primary-dark);
    border-color: rgba(4, 50, 169, 0.45);
    background: #f4f8ff;
}

.calc-alt-title {
    margin: 1.1rem 0 0.8rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
}

.calc-alt-grid {
    display: grid;
    gap: 0.9rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.calc-alt-card {
    border: 1px solid rgba(148, 163, 184, 0.3);
    border-radius: 0.85rem;
    background: #fff;
    padding: 0.85rem;
}

.calc-alt-card h4 {
    margin: 0 0 0.35rem;
    color: #111827;
    font-size: 1rem;
    font-weight: 700;
}

.calc-alt-card p {
    margin: 0 0 0.3rem;
    color: #4b5563;
}

@media (max-width: 767.98px) {
    .calc-form-card {
        padding: 0.85rem;
    }

    .calc-alt-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Página de Produto (detalhe)
   ========================================================================== */

/* ==========================================================================
   PÁGINA DE PRODUTO — Design moderno para alta conversão
   ========================================================================== */
.produto-page { background-color: #ffffff; }

/* Breadcrumb */
.produto-breadcrumb-wrapper { background: #f8f9fa; border-bottom: 1px solid rgba(4,50,169,.06); padding-block: .75rem; }
.produto-breadcrumb-wrapper .breadcrumb { font-size: .9rem; margin-bottom: 0; }
.produto-breadcrumb-wrapper .breadcrumb-item+.breadcrumb-item::before { color: #6b7280; }
.produto-breadcrumb-wrapper .breadcrumb a { color: var(--color-primary); text-decoration: none; }
.produto-breadcrumb-wrapper .breadcrumb a:hover { text-decoration: underline; }

/* ---- HERO ---- */
.produto-hero { background: radial-gradient(ellipse at 0 30%, rgba(6,123,197,.10) 0%, transparent 60%), radial-gradient(ellipse at 100% 80%, rgba(4,50,169,.06) 0%, transparent 50%), #ffffff; }
.produto-hero-header { margin-bottom: 1rem; }
.produto-hero-badge { display: inline-flex; align-items: center; gap: .35rem; background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .35rem .9rem; border-radius: 999px; margin-bottom: .75rem; }
.produto-hero-title { font-size: clamp(2rem, 3.4vw, 2.8rem); font-weight: 800; color: #0f172a; margin-bottom: .5rem; line-height: 1.15; }
.produto-hero-subtitle { font-size: 1rem; color: #4b5563; line-height: 1.7; margin-bottom: 0; }
.produto-hero-resumo { font-size: .95rem; color: #374151; line-height: 1.7; margin: .75rem 0 0; max-width: 640px; }
.produto-hero-resumo p { margin: 0 0 .75rem; }
.produto-hero-resumo p:last-child { margin-bottom: 0; }
.produto-hero-resumo h2, .produto-hero-resumo h3, .produto-hero-resumo h4 { font-size: 1.05rem; font-weight: 700; color: #111827; margin: 1rem 0 .5rem; }
.produto-hero-resumo ul, .produto-hero-resumo ol { margin: 0 0 .75rem; padding-left: 1.25rem; }
.produto-hero-resumo li { margin-bottom: .25rem; }
.produto-hero-resumo strong { color: #111827; }

/* Trust badges inline */
.produto-trust-inline { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.produto-trust-item { display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; font-weight: 600; color: #059669; background: rgba(5,150,105,.08); padding: .3rem .75rem; border-radius: 999px; }
.produto-trust-item i { font-size: .85rem; }

/* Hero highlights with icons */
.produto-hero-highlights { display: grid; grid-template-columns: repeat(2, 1fr); gap: .85rem; margin-top: 1.5rem; }
.produto-hero-highlight { display: flex; align-items: flex-start; gap: .75rem; border-radius: .875rem; background: #f8fafc; border: 1px solid rgba(148,163,184,.35); padding: .85rem .9rem; transition: border-color .2s, box-shadow .2s; }
.produto-hero-highlight:hover { border-color: var(--color-secondary); box-shadow: 0 4px 16px rgba(6,123,197,.10); }
.produto-hero-highlight-icon { flex-shrink: 0; width: 36px; height: 36px; border-radius: .6rem; background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .95rem; }
.produto-hero-highlight-title { font-size: .88rem; font-weight: 700; color: #111827; margin-bottom: .15rem; }
.produto-hero-highlight-text { font-size: .82rem; color: #6b7280; margin-bottom: 0; line-height: 1.45; }

/* Hero CTAs */
.produto-hero-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.5rem;
    justify-content: center;
    align-items: center;
}
.produto-hero-btn-primary { background: linear-gradient(135deg, var(--color-secondary), var(--color-primary)); border-radius: 999px; color: #fff; padding: .7rem 1.6rem; font-weight: 700; border: none; transition: transform .15s, box-shadow .2s; }
.produto-hero-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(4,50,169,.3); color: #fff; }
.produto-hero-btn-whatsapp {
    background: #25D366;
    border-radius: 999px;
    color: #fff;
    padding: .7rem 1.6rem;
    font-weight: 700;
    border: none;
    transition: transform .15s, box-shadow .2s;
    min-width: 270px;
    text-align: center;
}
.produto-hero-btn-whatsapp:hover { background: #1fb855; transform: translateY(-1px); box-shadow: 0 6px 20px rgba(37,211,102,.35); color: #fff; }
.produto-hero-btn-calc {
    background: #0f172a;
    border-radius: 999px;
    color: #fff;
    padding: .7rem 1.35rem;
    font-weight: 700;
    border: none;
    transition: transform .15s, box-shadow .2s;
    min-width: 270px;
    text-align: center;
}
.produto-hero-btn-calc:hover { background: #1e293b; transform: translateY(-1px); box-shadow: 0 6px 20px rgba(15,23,42,.28); color: #fff; }
.produto-hero-btn-secondary { border-radius: 999px; border: 1px solid rgba(148,163,184,.8); padding: .7rem 1.6rem; font-weight: 600; font-size: .88rem; color: #374151; background: #fff; transition: all .2s; }
.produto-hero-btn-secondary:hover { background: #eef2ff; color: var(--color-primary); border-color: var(--color-primary); }

/* Hero image */
.produto-hero-media { position: relative; }
.produto-hero-media img { display: block; width: 100%; height: auto; border-radius: 1.5rem; object-fit: contain; background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%); box-shadow: 0 20px 50px rgba(15, 23, 42, 0.10); transition: transform .4s ease; }
.produto-hero-media:hover img { transform: scale(1.02); }

/* ---- SECTION COMMON ---- */
.produto-section-header { margin-bottom: 1rem; }
.produto-section-title { font-size: clamp(1.7rem, 3vw, 2.2rem); font-weight: 800; color: #0f172a; margin-bottom: .45rem; }
.produto-section-subtitle { font-size: .95rem; color: #6b7280; max-width: 40rem; margin-bottom: 0; line-height: 1.6; }
.produto-section-header.text-center .produto-section-subtitle { margin-inline: auto; text-align: center; }

/* ---- SOCIAL PROOF BAR ---- */
.produto-social-proof { background: linear-gradient(135deg, #0f172a, #1e293b); padding: 2rem 0; }
.produto-social-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.produto-social-item { text-align: center; color: #e2e8f0; }
.produto-social-icon { font-size: 1.5rem; color: var(--color-secondary); margin-bottom: .4rem; }
.produto-social-number { font-size: 1.6rem; font-weight: 800; color: #fff; line-height: 1.2; }
.produto-social-label { font-size: .8rem; color: #94a3b8; margin-top: .15rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 600; }

/* ---- BENEFÍCIOS com ícones ---- */
.produto-beneficios-section { background: #f8fafc; }
.produto-beneficios-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.produto-beneficio-card { background: #fff; border-radius: 1.25rem; padding: 1.5rem 1.2rem; border: 1px solid rgba(148,163,184,.3); box-shadow: 0 4px 16px rgba(15,23,42,.06); transition: transform .25s, box-shadow .25s; text-align: center; }
.produto-beneficio-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(15,23,42,.12); }
.produto-beneficio-icon { width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(135deg, rgba(4,50,169,.08), rgba(6,123,197,.12)); color: var(--color-primary); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; margin: 0 auto .85rem; transition: background .25s; }
.produto-beneficio-card:hover .produto-beneficio-icon { background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); color: #fff; }
.produto-beneficio-title { font-size: .95rem; font-weight: 700; color: #111827; margin-bottom: .35rem; }
.produto-beneficio-text { font-size: .87rem; color: #6b7280; margin: 0; line-height: 1.5; }

/* ---- APLICAÇÕES com ícones ---- */
.produto-aplicacoes-grid { display: flex; flex-direction: column; gap: .75rem; }
.produto-aplicacao-item { display: flex; align-items: flex-start; gap: .75rem; padding: .85rem 1rem; background: #fff; border-radius: .875rem; border: 1px solid rgba(148,163,184,.3); transition: border-color .2s; }
.produto-aplicacao-item:hover { border-color: var(--color-secondary); }
.produto-aplicacao-item i { flex-shrink: 0; width: 32px; height: 32px; border-radius: .5rem; background: rgba(4,50,169,.06); color: var(--color-primary); display: flex; align-items: center; justify-content: center; font-size: .85rem; margin-top: .1rem; }
.produto-aplicacao-item span { font-size: .93rem; color: #374151; line-height: 1.5; }

/* ---- SPECS com ícones ---- */
.produto-especificacoes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; }
.produto-especificacao-item { background: #fff; border-radius: .9rem; padding: 1rem; border: 1px solid rgba(148,163,184,.35); display: flex; align-items: flex-start; gap: .7rem; transition: border-color .2s, box-shadow .2s; }
.produto-especificacao-item:hover { border-color: var(--color-secondary); box-shadow: 0 4px 12px rgba(6,123,197,.08); }
.produto-spec-icon { flex-shrink: 0; font-size: 1.1rem; color: var(--color-secondary); margin-top: .15rem; }
.produto-especificacao-label { display: block; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: #6b7280; }
.produto-especificacao-valor { display: block; font-size: .95rem; color: #111827; font-weight: 600; margin-top: .1rem; }

/* ---- CTA INTERMEDIÁRIO ---- */
.produto-cta-mid { background: linear-gradient(135deg, #eef2ff, #e0e7ff); }
.produto-cta-mid-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; background: #fff; border-radius: 1rem; border: 1px solid rgba(4,50,169,.12); box-shadow: 0 4px 16px rgba(4,50,169,.06); }
.produto-cta-mid-text { font-size: .95rem; font-weight: 600; color: #1e293b; }
.produto-cta-mid-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.produto-cta-mid-btn { background: #25D366; color: #fff; border-radius: 999px; padding: .55rem 1.3rem; font-weight: 700; font-size: .88rem; border: none; transition: transform .15s; }
.produto-cta-mid-btn:hover { background: #1fb855; transform: translateY(-1px); color: #fff; }
.produto-cta-mid-btn-outline { border: 1px solid var(--color-primary); color: var(--color-primary); border-radius: 999px; padding: .55rem 1.3rem; font-weight: 600; font-size: .88rem; background: transparent; transition: all .2s; }
.produto-cta-mid-btn-outline:hover { background: var(--color-primary); color: #fff; }

/* ---- MODELOS com destaque ---- */
.produto-modelos-section { background: #f8fafc; }
.produto-modelos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; align-items: stretch; }
.produto-modelo-card { background: #fff; border-radius: 1.25rem; padding: 1.5rem 1.25rem; border: 1px solid rgba(148,163,184,.35); display: flex; flex-direction: column; position: relative; transition: transform .25s, box-shadow .25s; }
.produto-modelo-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(15,23,42,.1); }
.produto-modelo-destaque { border: 2px solid var(--color-primary); box-shadow: 0 8px 28px rgba(4,50,169,.12); }
.produto-modelo-badge { position: absolute; top: -1px; left: 50%; transform: translateX(-50%); background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); color: #fff; font-size: .72rem; font-weight: 700; padding: .3rem 1rem; border-radius: 0 0 .6rem .6rem; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.produto-modelo-header { margin-bottom: .75rem; padding-top: .5rem; }
.produto-modelo-destaque .produto-modelo-header { padding-top: 1.2rem; }
.produto-modelo-nome { font-size: 1.15rem; font-weight: 800; margin-bottom: .2rem; color: #0f172a; }
.produto-modelo-tag { display: inline-block; font-size: .72rem; font-weight: 600; color: var(--color-secondary); background: rgba(6,123,197,.08); padding: .2rem .6rem; border-radius: 999px; text-transform: uppercase; letter-spacing: .04em; }
.produto-modelo-lista { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-direction: column; gap: .4rem; font-size: .9rem; color: #374151; }
.produto-modelo-lista i { color: var(--color-secondary); width: 18px; text-align: center; }
.produto-modelo-btn { display: block; text-align: center; border: 1px solid var(--color-primary); color: var(--color-primary); border-radius: 999px; padding: .55rem; font-weight: 600; font-size: .88rem; margin-top: auto; transition: all .2s; background: transparent; }
.produto-modelo-btn:hover { background: var(--color-primary); color: #fff; }
.produto-modelo-btn-primary { display: block; text-align: center; background: linear-gradient(135deg, var(--color-secondary), var(--color-primary)); color: #fff; border-radius: 999px; padding: .6rem; font-weight: 700; font-size: .9rem; border: none; margin-top: auto; transition: transform .15s, box-shadow .2s; }
.produto-modelo-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(4,50,169,.25); color: #fff; }

/* ---- INSTALAÇÃO com passos numerados ---- */
.produto-instalar-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 1.5rem; align-items: start; }
.produto-passos-wrapper { display: flex; flex-direction: column; gap: .65rem; }
.produto-passo { display: flex; align-items: flex-start; gap: .85rem; padding: .75rem .9rem; background: #fff; border-radius: .875rem; border: 1px solid rgba(148,163,184,.3); }
.produto-passo-num { flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); color: #fff; font-weight: 800; font-size: .85rem; display: flex; align-items: center; justify-content: center; }
.produto-passo p { margin: 0; font-size: .93rem; color: #374151; line-height: 1.5; }
.produto-dicas { background: linear-gradient(135deg, #0f172a, #1e293b); border-radius: 1.1rem; padding: 1.25rem 1.1rem; color: #e2e8f0; }
.produto-dicas-titulo { font-size: .95rem; font-weight: 700; margin-bottom: .6rem; color: #fbbf24; }
.produto-dicas-lista { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .5rem; font-size: .88rem; }
.produto-dicas-lista i { color: #fbbf24; width: 18px; text-align: center; }

/* ---- VÍDEO ---- */
.produto-video-section { background: #f0f4ff; }
.produto-video-wrapper { max-width: 800px; margin: 0 auto; }
.produto-video-placeholder { position: relative; border-radius: 1.25rem; overflow: hidden; cursor: pointer; aspect-ratio: 16/9; background: #0f172a; }
.produto-video-placeholder img { width: 100%; height: 100%; object-fit: cover; opacity: .6; transition: opacity .3s; }
.produto-video-placeholder:hover img { opacity: .4; }
.produto-video-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 72px; height: 72px; border-radius: 50%; background: rgba(255,255,255,.95); color: var(--color-primary); border: none; font-size: 1.5rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 30px rgba(0,0,0,.3); transition: transform .2s, box-shadow .2s; padding-left: 4px; }
.produto-video-play:hover { transform: translate(-50%, -50%) scale(1.08); box-shadow: 0 12px 40px rgba(0,0,0,.4); }
.produto-video-duration { position: absolute; bottom: 1rem; right: 1rem; background: rgba(0,0,0,.7); color: #fff; font-size: .78rem; font-weight: 600; padding: .25rem .6rem; border-radius: .4rem; }
.produto-video-iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---- MODAL DE VÍDEO (auto-abre) ---- */
.produto-video-modal { position: fixed; inset: 0; z-index: 1090; display: none; align-items: center; justify-content: center; padding: 1rem; }
.produto-video-modal.is-open { display: flex; }
.pvm-backdrop { position: absolute; inset: 0; background: rgba(6,12,35,.80); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); animation: pvmFade .3s ease; }
.pvm-dialog { position: relative; z-index: 1; width: min(920px, 100%); max-height: 92vh; overflow-y: auto; background: #fff; border-radius: 1.4rem; box-shadow: 0 30px 90px rgba(0,0,0,.55); animation: pvmIn .4s cubic-bezier(.2,.85,.25,1); }
@keyframes pvmFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pvmIn { from { opacity: 0; transform: translateY(24px) scale(.95); } to { opacity: 1; transform: none; } }
.pvm-close { position: absolute; top: .75rem; right: .75rem; z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: none; background: rgba(255,255,255,.92); color: var(--color-primary, #0432A9); font-size: 1.25rem; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 20px rgba(0,0,0,.3); transition: transform .2s, background .2s; }
.pvm-close:hover { transform: rotate(90deg) scale(1.06); background: #fff; }
.pvm-header { text-align: center; padding: 1.4rem 3rem .25rem; }
.pvm-title { font-size: 1.4rem; font-weight: 800; color: var(--color-primary, #0432A9); margin: 0; }
.pvm-subtitle { color: #5b6b8c; margin: .35rem 0 0; font-size: .95rem; }
.pvm-video { position: relative; aspect-ratio: 16/9; background: #000; margin: 1rem 1.25rem 0; border-radius: .9rem; overflow: hidden; }
.pvm-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pvm-actions { display: flex; gap: .8rem; padding: 1.1rem 1.25rem 1.35rem; flex-wrap: wrap; justify-content: center; }
.pvm-btn { flex: 1 1 200px; max-width: 320px; text-align: center; padding: .9rem 1.5rem; border-radius: .8rem; font-weight: 700; font-size: 1rem; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; transition: transform .2s, box-shadow .2s, background .2s, color .2s; }
.pvm-btn-primary { background-image: linear-gradient(135deg, #FF6B35 0%, #ff8a4c 100%); background-color: #FF6B35; color: #fff; box-shadow: 0 10px 26px rgba(255,107,53,.4); }
.pvm-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(255,107,53,.5); color: #fff; }
.pvm-btn-outline { background: #fff; color: var(--color-primary, #0432A9); border: 2px solid var(--color-primary, #0432A9); }
.pvm-btn-outline:hover { background: var(--color-primary, #0432A9); color: #fff; transform: translateY(-2px); }
@media (max-width: 575px) { .pvm-header { padding: 1.1rem 2.5rem .25rem; } .pvm-title { font-size: 1.15rem; } .pvm-actions { flex-direction: column; } .pvm-btn { width: 100%; max-width: none; flex: 0 0 auto; } }

/* ---- GALERIA com overlay ---- */
.produto-galeria-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.produto-galeria-item { position: relative; border-radius: 1.1rem; overflow: hidden; cursor: zoom-in; margin: 0; }
.produto-galeria-item img { display: block; width: 100%; height: 280px; object-fit: cover; transition: transform .4s; }
.produto-galeria-item:hover img { transform: scale(1.06); }
.produto-galeria-overlay { position: absolute; inset: 0; background: rgba(15,23,42,.5); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.5rem; opacity: 0; transition: opacity .3s; pointer-events: none; }
.produto-galeria-item:hover .produto-galeria-overlay { opacity: 1; }

/* Lightbox */
.produto-lightbox-overlay { position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,.88); display: flex; align-items: center; justify-content: center; padding: 2rem; opacity: 0; transition: opacity .3s; }
.produto-lightbox-overlay.is-visible { opacity: 1; }
.produto-lightbox-overlay img { max-width: 90vw; max-height: 85vh; border-radius: .75rem; object-fit: contain; }
.produto-lightbox-close { position: absolute; top: 1.5rem; right: 1.5rem; background: rgba(255,255,255,.15); border: none; color: #fff; font-size: 2rem; width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s; }
.produto-lightbox-close:hover { background: rgba(255,255,255,.3); }

/* ---- CTA FINAL ---- */
.produto-cta-section { background: #0b1120; }
.produto-cta-card { background: linear-gradient(135deg, #0f172a, #020617); border-radius: 1.6rem; padding: 2.5rem 2.25rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; box-shadow: 0 24px 70px rgba(0,0,0,.6); border: 1px solid rgba(148,163,184,.25); color: #e5e7eb; }
.produto-cta-titulo { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 800; margin-bottom: .4rem; }
.produto-cta-subtitulo { font-size: .96rem; margin: 0; color: #94a3b8; }
.produto-cta-acoes { display: flex; flex-wrap: wrap; gap: .65rem; }
.produto-cta-btn-primary { background: #fff; color: var(--color-primary); border-radius: 999px; padding: .75rem 1.8rem; font-weight: 700; border: none; transition: transform .15s; }
.produto-cta-btn-primary:hover { transform: translateY(-1px); color: var(--color-primary); }
.produto-cta-btn-whatsapp { background: #25D366; color: #fff; border-radius: 999px; padding: .75rem 1.8rem; font-weight: 700; border: none; transition: transform .15s; }
.produto-cta-btn-whatsapp:hover { background: #1fb855; transform: translateY(-1px); color: #fff; }
.produto-cta-btn-secondary { border-radius: 999px; padding: .75rem 1.8rem; border: 1px solid rgba(249,250,251,.6); color: #e5e7eb; background: transparent; font-weight: 600; transition: background .2s; }
.produto-cta-btn-secondary:hover { background: rgba(255,255,255,.08); color: #fff; }

/* ---- FAQ ACCORDION animado ---- */
.produto-faq-list { max-width: 860px; margin: 0 auto; display: flex; flex-direction: column; gap: .65rem; }
.produto-faq-item { border-radius: .9rem; border: 1px solid rgba(148,163,184,.4); background: #fff; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.produto-faq-item:hover { border-color: rgba(4,50,169,.2); }
.produto-faq-item.is-open { border-color: var(--color-primary); box-shadow: 0 4px 16px rgba(4,50,169,.08); }
.produto-faq-pergunta { width: 100%; text-align: left; padding: 1rem 1.15rem; background: transparent; border: none; font-size: .95rem; font-weight: 600; color: #111827; display: flex; align-items: center; justify-content: space-between; gap: .75rem; cursor: pointer; }
.produto-faq-icon { font-size: .75rem; color: #6b7280; transition: transform .3s; flex-shrink: 0; }
.produto-faq-item.is-open .produto-faq-icon { transform: rotate(180deg); color: var(--color-primary); }
.produto-faq-resposta { max-height: 0; overflow: hidden; transition: max-height .35s ease, padding .35s ease; padding: 0 1.15rem; }
.produto-faq-item.is-open .produto-faq-resposta { max-height: 300px; padding: 0 1.15rem 1rem; }
.produto-faq-resposta p { font-size: .9rem; color: #4b5563; line-height: 1.65; margin: 0; }

/* ---- WhatsApp FLUTUANTE ---- */
.produto-whatsapp-float { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 900; width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: #fff; font-size: 1.7rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 24px rgba(37,211,102,.4); transition: transform .2s, box-shadow .2s; text-decoration: none; }
.produto-whatsapp-float:hover { transform: scale(1.08); box-shadow: 0 8px 32px rgba(37,211,102,.5); color: #fff; }
.produto-whatsapp-tooltip { position: absolute; right: calc(100% + .75rem); top: 50%; transform: translateY(-50%); background: #1e293b; color: #fff; font-size: .78rem; font-weight: 600; padding: .4rem .8rem; border-radius: .5rem; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .2s; }
.produto-whatsapp-float:hover .produto-whatsapp-tooltip { opacity: 1; }

/* ---- STICKY MOBILE CTA ---- */
.produto-sticky-mobile { position: fixed; bottom: 0; left: 0; right: 0; z-index: 800; background: #fff; border-top: 1px solid rgba(148,163,184,.3); padding: .6rem 1rem; display: none; gap: .5rem; transform: translateY(100%); transition: transform .3s ease; box-shadow: 0 -4px 20px rgba(0,0,0,.1); }
.produto-sticky-mobile.is-visible { transform: translateY(0); }
.produto-sticky-btn-quote { flex: 1; background: linear-gradient(135deg, var(--color-secondary), var(--color-primary)); color: #fff; border-radius: 999px; font-weight: 700; font-size: .85rem; padding: .6rem; text-align: center; border: none; }
.produto-sticky-btn-quote:hover { color: #fff; }
.produto-sticky-btn-wpp { flex: 1; background: #25D366; color: #fff; border-radius: 999px; font-weight: 700; font-size: .85rem; padding: .6rem; text-align: center; border: none; }
.produto-sticky-btn-wpp:hover { color: #fff; }
.produto-sticky-btn-calc { flex: 1; background: #0f172a; color: #fff; border-radius: 999px; font-weight: 700; font-size: .85rem; padding: .6rem; text-align: center; border: none; }
.produto-sticky-btn-calc:hover { color: #fff; background: #1e293b; }

/* ---- MODAL CALCULADORA NO PRODUTO ---- */
.produto-calc-modal .modal-content { border-radius: 1rem; border: 1px solid rgba(148,163,184,.35); }
.produto-calc-modal .modal-header { border-bottom: 1px solid rgba(148,163,184,.25); }
.produto-calc-modal { z-index: 20000 !important; }
.produto-calc-modal .modal-dialog { z-index: 20001; pointer-events: auto; }
.modal-backdrop.show { z-index: 19990 !important; }
.produto-calc-backdrop { z-index: 19990 !important; pointer-events: none !important; }
.produto-calc-intro { color: #334155; line-height: 1.55; }
.produto-calc-submit-btn { background: linear-gradient(135deg, var(--color-secondary), var(--color-primary)); color: #fff; border-radius: .75rem; border: none; font-weight: 700; padding: .75rem 1rem; }
.produto-calc-submit-btn:hover { color: #fff; filter: brightness(1.03); }
.produto-calc-result { border-top: 1px solid rgba(148,163,184,.2); padding-top: 1rem; }
.produto-calc-amt { display: inline-flex; gap: .45rem; align-items: center; background: #eef2ff; color: #1e3a8a; border-radius: 999px; padding: .35rem .9rem; font-size: .9rem; font-weight: 600; }
.produto-calc-whatsapp-btn { background: #25D366; color: #fff; border-radius: 999px; border: none; font-weight: 700; padding: .62rem 1.1rem; }
.produto-calc-whatsapp-btn:hover { color: #fff; background: #1fb855; }
.produto-calc-ideal-card { background: #f8fafc; border: 1px solid rgba(148,163,184,.3); border-radius: .85rem; padding: .9rem; }
.produto-calc-ideal-link { background: #0f172a; color: #fff; border-radius: 999px; }
.produto-calc-ideal-link:hover { color: #fff; background: #1e293b; }
.produto-calc-alt-list { display: flex; flex-direction: column; gap: .45rem; }
.produto-calc-alt-item { display: block; background: #fff; border: 1px solid rgba(148,163,184,.35); border-radius: .65rem; padding: .5rem .65rem; color: #0f172a; text-decoration: none; font-size: .9rem; }
.produto-calc-alt-item:hover { border-color: var(--color-primary); color: var(--color-primary); }

/* ---- Scroll reveal ---- */
.fade-in-section { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.fade-in-section.is-visible { opacity: 1; transform: translateY(0); }

/* ---- RESPONSIVO ---- */
@media (max-width: 1199.98px) {
    .produto-beneficios-grid { grid-template-columns: repeat(2, 1fr); }
    .produto-especificacoes-grid, .produto-modelos-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 991.98px) {
    .produto-hero-highlights { grid-template-columns: 1fr; }
    .produto-social-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .produto-especificacoes-grid, .produto-modelos-grid, .produto-galeria-grid { grid-template-columns: repeat(2, 1fr); }
    .produto-instalar-grid { grid-template-columns: 1fr; }
    .produto-cta-card { padding: 2rem 1.5rem; }
    .produto-cta-mid-card { flex-direction: column; text-align: center; }
    .produto-hero-btn-whatsapp,
    .produto-hero-btn-calc {
        min-width: 240px;
    }
}
@media (max-width: 767.98px) {
    .produto-sticky-mobile { display: flex; }
    .produto-whatsapp-float { bottom: 5rem; }
}
@media (max-width: 575.98px) {
    .produto-beneficios-grid, .produto-especificacoes-grid, .produto-modelos-grid, .produto-galeria-grid { grid-template-columns: 1fr; }
    .produto-social-grid { grid-template-columns: repeat(2, 1fr); }
    .produto-cta-card { padding: 1.7rem 1.3rem; }
    .produto-galeria-item img { height: 220px; }
    .produto-trust-inline { gap: .5rem; }
    .produto-hero-ctas {
        justify-content: stretch;
    }
    .produto-hero-btn-whatsapp,
    .produto-hero-btn-calc {
        min-width: 100%;
    }
}





.qs-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: none;
    background: rgba(15, 23, 42, 0.75);
    color: #f9fafb;
    font-size: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.qs-lightbox-prev {
    left: 1.5rem;
}

.qs-lightbox-next {
    right: 1.5rem;
}

.qs-lightbox-nav:hover,
.qs-lightbox-nav:focus-visible {
    background: rgba(148, 163, 184, 0.9);
    color: #020617;
}

/* ==========================================================================
   PÁGINA POLÍTICA DE PRIVACIDADE
   ========================================================================== */

.politica-privacidade-page {
    background-color: #f8f9fa;
    min-height: 100vh;
}

/* Breadcrumb */
.politica-breadcrumb-wrapper {
    background-color: #ffffff;
    padding: 1rem 0;
    border-bottom: 1px solid var(--color-border-soft);
}

.politica-breadcrumb-wrapper .breadcrumb {
    margin-bottom: 0;
}

.politica-breadcrumb-wrapper .breadcrumb-item a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color 0.3s ease;
}

.politica-breadcrumb-wrapper .breadcrumb-item a:hover {
    color: var(--color-secondary);
}

/* Hero Section */
.politica-hero {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
    color: #ffffff;
}

.politica-hero-header {
    max-width: 800px;
    margin: 0 auto;
}

.politica-hero-title {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: #ffffff;
}

.politica-hero-subtitle {
    font-size: 1.125rem;
    line-height: 1.6;
    margin-bottom: 1rem;
    opacity: 0.95;
}

.politica-hero-date {
    font-size: 0.875rem;
    opacity: 0.85;
}

/* Content Section */
.politica-content-section {
    background-color: #ffffff;
}

.politica-content-wrapper {
    background-color: #ffffff;
    padding: 3rem 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

/* Sections */
.politica-section {
    margin-bottom: 3rem;
}

.politica-section:last-child {
    margin-bottom: 0;
}

.politica-section-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 3px solid var(--color-secondary);
    display: flex;
    align-items: center;
}

.politica-section-title i {
    font-size: 1.5rem;
    margin-right: 0.5rem;
}

.politica-section-content {
    line-height: 1.8;
    color: #333333;
}

.politica-section-content p {
    margin-bottom: 1rem;
}

.politica-section-content p:last-child {
    margin-bottom: 0;
}

/* Subsections */
.politica-subsection-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--color-primary-dark);
    margin-top: 2rem;
    margin-bottom: 1rem;
}

.politica-subsubsection-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: #555555;
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
}

/* Lists */
.politica-section-content ul,
.politica-section-content ol {
    margin-bottom: 1.5rem;
    padding-left: 2rem;
}

.politica-section-content ul li,
.politica-section-content ol li {
    margin-bottom: 0.75rem;
    line-height: 1.7;
}

.politica-section-content ul li strong {
    color: var(--color-primary);
}

/* Alerts */
.politica-section-content .alert {
    border-radius: 6px;
    padding: 1.25rem;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}

.politica-section-content .alert ul {
    margin-top: 0.75rem;
    margin-bottom: 0;
}

.politica-section-content .alert a {
    color: inherit;
    text-decoration: underline;
    font-weight: 600;
}

.politica-section-content .alert a:hover {
    opacity: 0.8;
}

/* Rights Grid */
.politica-rights-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}

.politica-right-item {
    background-color: #f8f9fa;
    padding: 1.5rem;
    border-radius: 8px;
    border-left: 4px solid var(--color-secondary);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.politica-right-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.politica-right-item h4 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
}

.politica-right-item p {
    margin-bottom: 0;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #555555;
}

/* DPO Box */
.politica-dpo-box {
    background-color: #f0f7ff;
    border: 2px solid var(--color-secondary);
    border-radius: 8px;
    padding: 1.5rem;
    margin-top: 1.5rem;
}

.politica-dpo-box p {
    margin-bottom: 0.75rem;
}

.politica-dpo-box ul {
    margin-bottom: 0;
}

.politica-dpo-box a {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 600;
}

.politica-dpo-box a:hover {
    text-decoration: underline;
}

/* Contact Box */
.politica-contact-box {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 8px;
    padding: 2rem;
    margin-top: 1.5rem;
    border: 1px solid var(--color-border-soft);
}

.politica-contact-box h4 {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 1.25rem;
    display: flex;
    align-items: center;
}

.politica-contact-box p {
    margin-bottom: 1rem;
    line-height: 1.7;
}

.politica-contact-box a {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 500;
}

.politica-contact-box a:hover {
    text-decoration: underline;
    color: var(--color-secondary);
}

/* Footer */
.politica-footer {
    margin-top: 3rem;
    padding-top: 2rem;
}

.politica-footer p {
    margin-bottom: 0.5rem;
}

/* Links */
.politica-section-content a {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 500;
    border-bottom: 1px dotted var(--color-primary);
    transition: all 0.2s ease;
}

.politica-section-content a:hover {
    color: var(--color-secondary);
    border-bottom-color: var(--color-secondary);
    border-bottom-style: solid;
}

/* Responsive */
@media (max-width: 768px) {
    .politica-hero-title {
        font-size: 2rem;
    }

    .politica-hero-subtitle {
        font-size: 1rem;
    }

    .politica-content-wrapper {
        padding: 2rem 1.5rem;
    }

    .politica-section-title {
        font-size: 1.5rem;
    }

    .politica-rights-grid {
        grid-template-columns: 1fr;
    }

    .politica-contact-box {
        padding: 1.5rem;
    }
}

@media (max-width: 576px) {
    .politica-hero-title {
        font-size: 1.75rem;
    }

    .politica-content-wrapper {
        padding: 1.5rem 1rem;
    }

    .politica-section-title {
        font-size: 1.35rem;
    }

    .politica-subsection-title {
        font-size: 1.1rem;
    }
}

/* =========================================================================
   LANGUAGE SWITCHER (i18n)
   ========================================================================= */
.language-switcher {
    display: inline-flex;
    align-items: center;
}

.language-switcher-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: inherit;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 4px;
    transition: all 0.2s ease;
    line-height: 1;
}

.language-switcher-btn:hover,
.language-switcher-btn:focus {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.5);
    color: inherit;
}

.language-switcher-btn::after {
    font-size: 0.6rem;
    vertical-align: middle;
    margin-left: 0.15rem;
}

.language-flag {
    font-size: 1.1rem;
    line-height: 1;
}

.language-code {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.language-switcher-menu {
    min-width: 150px;
    padding: 0.35rem 0;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

.language-switcher-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    font-size: 0.85rem;
    transition: background 0.15s ease;
}

.language-switcher-item:hover {
    background-color: rgba(0, 0, 0, 0.04);
}

.language-switcher-item.active {
    font-weight: 600;
    color: var(--bs-primary, #0d6efd);
    background-color: rgba(13, 110, 253, 0.05);
}

.language-switcher-item .language-flag {
    font-size: 1.2rem;
}

.language-switcher-item .language-name {
    flex: 1;
}

.language-check {
    font-size: 0.7rem;
    color: var(--bs-primary, #0d6efd);
}

/* Responsivo - Language Switcher */
@media (max-width: 991.98px) {
    .language-switcher-btn {
        padding: 0.15rem 0.4rem;
        font-size: 0.75rem;
    }

    .language-flag {
        font-size: 1rem;
    }
}
