/* Estilos Base e Swiper */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --color-primary: #0070c8;
    --color-essencial: #589ca7;
    --color-premium: #933348;
    --color-familia: #0ea5e9;
    --color-senior: #6366f1;
}

body {
    font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
    line-height: 1.6;
    color: #334155;
}

/* Acessibilidade — alto contraste (aplicado no html) */
html.a11y-contrast {
    filter: grayscale(1) contrast(1.35);
}

/* Carrossel Swiper */
.bannerSwiper .swiper-button-next,
.bannerSwiper .swiper-button-prev {
    color: white;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    margin-top: -25px;
}

.bannerSwiper .swiper-button-next:after,
.bannerSwiper .swiper-button-prev:after {
    font-size: 20px;
}

.bannerSwiper .swiper-pagination-bullet {
    background: rgba(255, 255, 255, 0.5);
    opacity: 1;
}

.bannerSwiper .swiper-pagination-bullet-active {
    background: var(--color-primary);
}

.shadow-premium-sm {
    box-shadow: 0 2px 12px -1px rgba(15, 23, 42, 0.03), 0 1px 4px -1px rgba(15, 23, 42, 0.02);
}

.shadow-premium-md {
    box-shadow: 0 12px 30px -4px rgba(15, 23, 42, 0.04), 0 4px 12px -2px rgba(15, 23, 42, 0.02);
}

.shadow-premium-lg {
    box-shadow: 0 20px 40px -4px rgba(15, 23, 42, 0.06), 0 8px 20px -4px rgba(15, 23, 42, 0.03);
}

/* Conveniados — logos e cards sem overflow no mobile */
#convGrid {
    min-width: 0;
    width: 100%;
    overflow: visible;
    padding-top: 0.5rem;
}

#convGrid > article {
    min-width: 0;
    max-width: 100%;
    overflow: visible;
}

.conv-card-logo,
.conv-logo-fallback {
    width: 3rem;
    height: 3rem;
    max-width: 3rem;
    max-height: 3rem;
    object-fit: contain;
    flex-shrink: 0;
}

@media (min-width: 640px) {
    .conv-card-logo,
    .conv-logo-fallback {
        width: 3.5rem;
        height: 3.5rem;
        max-width: 3.5rem;
        max-height: 3.5rem;
    }
}
