/* ══════════════════════════════════════════
   SITE CSS — UNIMED CORPORATIVO
   ══════════════════════════════════════════ */

/* ── Fontes Unimed ──────────────────────── */
@font-face {
    font-family: 'Unimed Sans';
    src: url('../fonts/UnimedSans2020-Lg.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Unimed Sans';
    src: url('../fonts/UnimedSans2020-Rg.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Unimed Sans';
    src: url('../fonts/UnimedSans2020-Bd.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Unimed Serif';
    src: url('../fonts/UnimedSerif2020-Bk.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Unimed Serif';
    src: url('../fonts/UnimedSerif2020-Rg.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* ── Reset & Base ────────────────────────── */
:root {
    --font-sans: 'Unimed Sans', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-body: 'Inter', 'Unimed Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-serif: 'Unimed Serif', Georgia, 'Times New Roman', serif;
    --cor-primaria: #00995D;
    --cor-primaria-escura: #007a4a;
    --cor-primaria-clara: #e8f5ee;
    --cor-texto: #2c3e50;
    --cor-texto-leve: #7f8c8d;
    --cor-fundo: #ffffff;
    --cor-fundo-alt: #f7f9f8;
    --cor-borda: #e4ebe8;
    --radius: 10px;
    --sombra-card: 0 1px 8px rgba(0,0,0,.05), 0 2px 4px rgba(0,0,0,.03);
    --sombra-card-hover: 0 12px 32px rgba(0,0,0,.10);
    --transicao: .25s cubic-bezier(.4,0,.2,1);

    /* Escala de espaçamento */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;
    --space-7: 48px;
    --space-8: 64px;

    /* Motion design: durações e curvas */
    --ease-out: cubic-bezier(.16,1,.3,1);
    --ease-in-out: cubic-bezier(.4,0,.2,1);
    --motion-fast: 150ms;
    --motion-base: 250ms;
    --motion-slow: 400ms;
}

/* ── Motion Design: transição de entrada de página ── */
#conteudo-principal {
    animation: pageEnter var(--motion-slow) var(--ease-out) both;
}
@keyframes pageEnter {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Acessibilidade: respeita "reduzir movimento" do sistema ── */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }
}

/* ── Estados de formulário (foco consistente na marca) ── */
.form-control:focus,
.form-select:focus {
    border-color: var(--cor-primaria);
    box-shadow: 0 0 0 3px rgba(0,153,93,.14);
}
.form-check-input:focus {
    border-color: var(--cor-primaria);
    box-shadow: 0 0 0 3px rgba(0,153,93,.14);
}
.form-check-input:checked {
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
}
.form-control, .form-select {
    transition: border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-sans);
    color: var(--cor-texto);
    font-weight: 700;
    letter-spacing: -.01em;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    color: var(--cor-texto);
    font-family: var(--font-body);
    font-weight: 400;
    background: var(--cor-fundo);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.6;
    font-size: 15px;
}

main {
    flex: 1;
    background: linear-gradient(180deg, #ffffff 0%, #f7f9f8 10%, #eef5f1 25%, #f0f7f4 45%, #ffffff 60%, #f5f8f6 80%, #f0f4f2 100%);
}

p { line-height: 1.7; }

strong, b { font-weight: 700; }

a { color: var(--cor-primaria); text-decoration: none; transition: color var(--transicao); }
a:hover { color: var(--cor-primaria-escura); text-decoration: none; }

/* ── Navbar ──────────────────────────────── */
.navbar {
    z-index: 1030;
    padding: .65rem 0;
    transition: box-shadow .3s, background .3s;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.navbar.sticky-top { box-shadow: 0 2px 20px rgba(0,0,0,.12); }
.navbar-brand img { transition: transform .2s; }
.navbar-brand:hover img { transform: scale(1.03); }
.navbar .dropdown-menu {
    z-index: 1040;
    border: none;
    box-shadow: 0 12px 36px rgba(0,0,0,.14);
    border-radius: var(--radius);
    padding: .5rem 0;
    animation: dropdownFade .2s ease;
}
@keyframes dropdownFade { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.navbar .dropdown-item { padding: .55rem 1.4rem; font-size: .88rem; transition: all .15s; border-radius: 0; }
.navbar .dropdown-item:hover { background: var(--cor-primaria-clara); color: var(--cor-primaria); }
.navbar .nav-link {
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: .9rem;
    letter-spacing: .02em;
    padding: .55rem 1rem !important;
    position: relative;
}
.navbar .nav-link:not(.dropdown-toggle)::after { display: none; }
.navbar-nav .nav-link.active {
    opacity: 1 !important;
}
.navbar-brand {
    font-family: var(--font-sans);
    font-weight: 700;
}

/* Fonte padrão em formulários e botões */
input, select, textarea, button,
.btn, .form-control, .form-select,
.dropdown-item, .nav-link, .badge,
label, .alert {
    font-family: var(--font-body);
}

/* ── Carrossel ───────────────────────────── */
.carousel-section {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
    background: #ffffff;
    margin-top: 4px;
}

.carousel-item {
    position: relative;
    overflow: hidden;
    background-color: #ffffff;
}

.carousel-img {
    width: 100%;
    height: clamp(320px, 44vw, 580px);
    object-fit: cover;
    object-position: center;
    display: block;
    transition: none;
}

.carousel-item .carousel-img,
.carousel-item.active .carousel-img { transform: none !important; }

.carousel-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
}
.carousel-overlay-dark {
    background: linear-gradient(105deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.30) 55%, rgba(0,0,0,.05) 100%);
}
.carousel-overlay-light {
    background: linear-gradient(105deg, rgba(255,255,255,.65) 0%, rgba(255,255,255,.30) 55%, rgba(255,255,255,.02) 100%);
}
.carousel-overlay-none { background: none; }

.carousel-caption-custom {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    padding: 0 18%;
    pointer-events: none;
}
.caption-left   { justify-content: flex-start; text-align: left; }
.caption-center  { justify-content: center;    text-align: center; }
.caption-right   { justify-content: flex-end;  text-align: right; }

.carousel-caption-inner { max-width: 520px; pointer-events: auto; }

.carousel-titulo {
    font-size: clamp(1.4rem, 3vw, 2.4rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.02em;
    margin-bottom: .6rem;
    text-shadow: 0 1px 6px rgba(0,0,0,.25);
}
.carousel-titulo p, .carousel-descricao p { margin: 0; }

.carousel-descricao {
    font-size: clamp(.88rem, 1.4vw, 1.1rem);
    font-weight: 400;
    line-height: 1.55;
    margin-bottom: 1.2rem;
    opacity: .92;
    text-shadow: 0 1px 4px rgba(0,0,0,.2);
}

.carousel-btn {
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: .6rem 1.8rem;
    border-radius: 4px;
    border-width: 2px;
    transition: background .2s, color .2s, transform .2s;
}
.carousel-btn:hover { transform: translateY(-1px); }
.carousel-btn.btn-outline-light:hover { background: #fff; color: #1a2e1a; }
.carousel-btn.btn-outline-dark:hover  { background: #1a2e1a; color: #fff; }

.carousel-link-full { position: absolute; inset: 0; z-index: 3; display: block; }

.carousel-ctrl {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,.18);
    backdrop-filter: blur(4px);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s, transform .2s;
}
.carousel-ctrl svg { width: 20px; height: 20px; }
.carousel-ctrl:hover { background: rgba(255,255,255,.35); transform: translateY(-50%) scale(1.08); }
.carousel-ctrl-prev { left: 50px; }
.carousel-ctrl-next { right: 50px; }

.carousel-dots {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    gap: 8px;
    align-items: center;
}
.carousel-dots button {
    width: 8px; height: 8px; border-radius: 50%; border: none; padding: 0;
    background: rgba(255,255,255,.45);
    cursor: pointer;
    transition: background .25s, width .25s;
}
.carousel-dots button.active { background: #fff; width: 24px; border-radius: 4px; }

.carousel-fade .carousel-item       { opacity: 0; transition: opacity .7s ease-in-out; }
.carousel-fade .carousel-item.active { opacity: 1; }

/* ── Cards ───────────────────────────────── */
.card {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--radius);
    box-shadow: var(--sombra-card);
    transition: transform var(--transicao), box-shadow var(--transicao);
    overflow: hidden;
    height: 100%;
}
.card:hover {
    transform: translateY(-2px);
    box-shadow: var(--sombra-card-hover);
}
.noticia-card,
.noticia-card:hover {
    box-shadow: none;
}
.card-img-top {
    height: 210px;
    object-fit: cover;
    border-bottom: 1px solid var(--cor-borda);
}
.card-title {
    font-family: var(--font-body);
    color: var(--cor-texto);
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.4;
}
.card-body { padding: 1.25rem; }

/* ── Botões ──────────────────────────────── */
.btn-success {
    background: var(--cor-primaria);
    border-color: var(--cor-primaria);
    color: #fff;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: .88rem;
    letter-spacing: .02em;
    border-radius: 6px;
    padding: .5rem 1.4rem;
    transition: all var(--transicao);
}
.btn-success:hover, .btn-success:focus {
    background: var(--cor-primaria-escura);
    border-color: var(--cor-primaria-escura);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0,153,93,.3);
}
.btn-outline-success {
    color: var(--cor-primaria);
    border-color: var(--cor-primaria);
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: .88rem;
    border-radius: 6px;
    padding: .5rem 1.4rem;
    transition: all var(--transicao);
}
.btn-outline-success:hover, .btn-outline-success:focus {
    background: var(--cor-primaria);
    border-color: var(--cor-primaria);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0,153,93,.3);
}
.btn { transition: transform var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out); }
.btn:active { transform: translateY(0) scale(.98); }

/* ── Seções ──────────────────────────────── */
.section-header {
    margin-bottom: 1rem;
}
.section-title {
    font-size: clamp(1.3rem, 2.5vw, 1.7rem);
    font-weight: 700;
    color: var(--cor-texto);
    margin-bottom: .25rem;
    position: relative;
    display: inline-block;
}
.section-title::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 0;
    width: 48px;
    height: 3px;
    background: var(--cor-primaria);
    border-radius: 2px;
}
.section-subtitle {
    font-size: .92rem;
    color: var(--cor-texto-leve);
    margin-top: .75rem;
}

/* ── Serviços Principais ─────────────────── */
.servicos-section {
    background: var(--cor-fundo);
    position: relative;
}
.servicos-section::after {
    content: '';
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: 0;
    height: 1px;
    background: linear-gradient(to right, transparent, var(--cor-borda) 50%, transparent);
}

/* Desktop: grid horizontal */
.servicos-desktop {
    display: flex;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
}
.servicos-mobile { display: none; }

.servico-card {
    text-align: center;
    padding: 1.5rem 1rem;
    border-radius: 12px;
    transition: all var(--transicao);
    text-decoration: none;
    display: block;
    border: 1px solid transparent;
    background: transparent;
    min-width: 130px;
    flex: 0 1 165px;
}
.servico-card:hover {
    background: var(--cor-primaria-clara);
    border-color: rgba(0,153,93,.15);
    transform: translateY(-3px);
    box-shadow: 0 4px 16px rgba(0,153,93,.1);
    text-decoration: none;
}
.servico-card img {
    width: 72px;
    height: 72px;
    object-fit: contain;
    margin-bottom: .75rem;
    transition: transform .3s;
}
.servico-card:hover img { transform: scale(1.1); }
.servico-card h6 {
    font-family: var(--font-body);
    font-size: .88rem;
    font-weight: 600;
    color: var(--cor-texto);
    margin: 0;
    line-height: 1.35;
    transition: color .2s;
}
.servico-card:hover h6 { color: var(--cor-primaria); }

/* Mobile: lista vertical */
.servico-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: .85rem 1rem;
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: 10px;
    margin-bottom: 8px;
    text-decoration: none;
    color: var(--cor-texto);
    transition: all var(--transicao);
}
.servico-row:hover, .servico-row:active {
    background: var(--cor-primaria-clara);
    border-color: rgba(0,153,93,.2);
    text-decoration: none;
    color: var(--cor-primaria);
}
.servico-row img {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex-shrink: 0;
}
.servico-row span {
    flex: 1;
    font-family: var(--font-body);
    font-size: .92rem;
    font-weight: 600;
    line-height: 1.3;
}
.servico-row-arrow {
    font-size: .7rem;
    color: #ccc;
    flex-shrink: 0;
    transition: color .2s;
}
.servico-row:hover .servico-row-arrow { color: var(--cor-primaria); }

@media (max-width: 767px) {
    .servicos-desktop { display: none; }
    .servicos-mobile  { display: block; }
}

/* ── Acesso Rápido ───────────────────────── */
.acesso-rapido-section { background: var(--cor-fundo-alt); }
.acesso-rapido-card {
    background: #fff;
    /* border: 1px solid var(--cor-borda); */
    /* border-radius: 12px; */
    box-shadow: none;
    text-align: center;
    padding: 1.25rem 1.25rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: border-color var(--transicao);
}
.acesso-rapido-card:hover {
    border-color: #d5dfda;
}
.acesso-rapido-card h5 {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: .5rem;
}
.acesso-rapido-card p {
    font-size: .9rem;
    color: var(--cor-texto-leve);
    flex: 1;
    line-height: 1.6;
}
.acesso-rapido-card .btn {
    border-radius: 6px;
    font-weight: 600;
    font-size: .85rem;
    padding: .5rem 1.4rem;
    transition: all var(--transicao);
}
.acesso-rapido-card .btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
}

/* ── Notícias Home ───────────────────────── */
.noticias-section { background: var(--cor-fundo); }

.noticia-destaque {
    background: var(--cor-fundo-alt);
    border: 1px solid var(--cor-borda);
    border-radius: 8px;
    padding: 1.25rem;
    overflow: hidden;
}
.noticia-destaque img {
    border-radius: var(--radius);
    object-fit: cover;
    width: 100%;
    max-height: 340px;
}
.noticia-destaque .texto {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.noticia-destaque h2 {
    font-size: clamp(1.2rem, 2.5vw, 1.6rem);
    color: var(--cor-texto);
    line-height: 1.3;
}

.mais-noticias { display: flex; justify-content: center; }

.noticia-card-home .card-img-top {
    height: 140px;
}
.noticia-card-home .card-body {
    padding: .9rem 1rem;
}
.noticia-card-home .card-title {
    font-size: .92rem;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: .4rem;
}
.noticia-card-home p {
    line-height: 1.5;
    margin-bottom: 0;
}

/* ── Centrais de Atendimento ─────────────── */
.central-box {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: 12px;
    overflow: hidden;
    height: 100%;
    box-shadow: var(--sombra-card);
    transition: box-shadow var(--transicao);
}
.central-box:hover {
    box-shadow: var(--sombra-card-hover);
}
.central-box-header {
    background: var(--cor-primaria);
    color: #fff;
    padding: .85rem 1.25rem;
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-body);
    font-size: .92rem;
    font-weight: 700;
    letter-spacing: .03em;
}
.central-box-header i {
    font-size: 1rem;
    opacity: .85;
}
.central-box-body {
    padding: 1.25rem;
}
.central-info {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: .55rem 0;
    font-size: .88rem;
    color: var(--cor-texto);
    border-bottom: 1px solid #f2f2f2;
}
.central-info:last-child { border-bottom: none; }
.central-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cor-primaria-clara);
    border-radius: 8px;
    flex-shrink: 0;
    color: var(--cor-primaria);
    font-size: .8rem;
}
.central-icon-whatsapp {
    background: #e8f8f0;
    color: #25d366;
}
.central-info a {
    color: var(--cor-texto);
    text-decoration: none;
    transition: color .15s;
    word-break: break-all;
}
.central-info a:hover { color: var(--cor-primaria); }

/* ── Essência Unimed: Crenças, Propósito, Princípios e Valores ── */
.essencia-section { }
.essencia-grid {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.75rem 1.75rem;
    max-width: 900px;
    margin: 0 auto;
}
@media (min-width: 768px) {
    .essencia-grid {
        grid-template-columns: 1fr 1fr;
        gap: 3.5rem 4.5rem;
    }
}
.essencia-card {
    background: var(--essencia-accent-bg, #f5fcf9);
    border-radius: 20px;
    padding: 2rem 1.6rem 1.6rem;
    position: relative;
    box-shadow: 0 2px 18px rgba(0,0,0,.05);
}
.essencia-badge {
    position: absolute;
    top: -16px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--essencia-accent, var(--cor-primaria));
    color: #fff;
    font-weight: 700;
    font-size: .78rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: .5rem 1.25rem;
    border-radius: 999px;
    white-space: nowrap;
    box-shadow: 0 3px 10px rgba(0,0,0,.14);
}
.essencia-card p {
    margin: 0;
    color: var(--cor-texto);
    font-size: .92rem;
    line-height: 1.75;
    white-space: pre-line;
    text-align: left;
}
.essencia-emblem {
    display: flex;
    order: -1;
    width: 128px;
    height: 128px;
    margin: 0 auto;
    border-radius: 50%;
    background: #fff;
    border: 4px solid #f0f4f1;
    box-shadow: 0 4px 22px rgba(0,0,0,.14);
    align-items: center;
    justify-content: center;
    text-align: center;
    z-index: 2;
    padding: .5rem;
}
.essencia-emblem span {
    font-weight: 800;
    font-size: .82rem;
    line-height: 1.3;
    color: #00995D;
    text-transform: uppercase;
    letter-spacing: .02em;
}
@media (min-width: 768px) {
    /* Só centraliza sobre os cards quando os 4 estão presentes (grid 2x2 simétrico) */
    .essencia-grid--full .essencia-emblem {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        margin: 0;
    }
}

/* ── Informativos ────────────────────────── */
.informativos-section { }
.informativos-secao-header { text-align: center; }
.informativos-secao-titulo {
    font-size: clamp(1.2rem, 2.5vw, 1.7rem);
    font-weight: 700;
    margin-bottom: .25rem;
}
.informativos-secao-subtitulo {
    font-size: .95rem;
    color: #666;
    margin-bottom: 1rem;
}
.informativos-grid {
    display: grid;
    gap: 18px;
    margin: 0 auto;
}
.informativos-grid.informativos-count-1 { grid-template-columns: 1fr; max-width: 85%; }
.informativos-grid.informativos-count-2 { grid-template-columns: repeat(2, 1fr); }
.informativos-grid.informativos-count-3 { grid-template-columns: repeat(3, 1fr); }
.informativos-grid.informativos-count-4 { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

.informativo-card {
    border-radius: var(--radius, 12px);
    border: 1px solid var(--cor-borda, #e4ebe8);
    overflow: hidden;
    box-shadow: none;
    transition: border-color .25s;
    text-decoration: none;
    display: block;
}
a.informativo-card:hover {
    border-color: #c7d6d0;
    text-decoration: none;
}
.informativo-card--imagem {
    border: none;
    background: transparent;
}
.informativo-img {
    width: 100%;
    height: 170px;
    display: block;
    object-fit: contain;
    background: var(--cor-fundo-alt, #f7f9f8);
}
.informativo-card--imagem .informativo-img {
    background: transparent;
}
.informativo-titulo {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.02rem;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0 0 10px;
    padding: 20px 20px 0;
}
.informativo-icone-badge {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--info-accent, #1F5B53) 14%, #fff);
    flex-shrink: 0;
}
.informativo-icone {
    font-size: 1.15rem;
    color: var(--info-accent, #1F5B53);
}
.informativo-conteudo {
    font-size: .9rem;
    line-height: 1.7;
    padding: 0 20px 20px;
    opacity: .82;
}
.informativo-conteudo a { color: inherit; text-decoration: none; }

/* ── Footer ──────────────────────────────── */
footer { margin-top: auto; }
footer a:hover { opacity: .8; }

/* ── Carrossel Responsivo ────────────────── */
@media (max-width: 991px) {
    .carousel-img { height: clamp(260px, 46vw, 420px); }
    .carousel-caption-custom { padding: 0 8%; }
    .carousel-caption-inner { max-width: 420px; }
}

@media (max-width: 767px) {
    .carousel-section { background: var(--cor-fundo); }
    .carousel-item { overflow: visible; background-color: var(--cor-fundo); }
    .carousel-item.active { display: flex !important; flex-direction: column; }

    .carousel-img {
        height: auto !important;
        max-height: none;
        object-fit: contain;
        flex-shrink: 0;
    }

    .carousel-overlay { display: none; }

    .carousel-caption-custom {
        position: static !important;
        display: block;
        padding: 1rem 1.2rem;
        background-color: var(--cor-fundo);
        text-align: center;
    }
    .carousel-caption-custom.text-white,
    .carousel-caption-custom.text-dark { color: var(--cor-texto) !important; }
    .carousel-titulo { font-size: clamp(1.1rem, 5vw, 1.4rem); text-shadow: none; color: inherit; }
    .carousel-descricao { font-size: .85rem; text-shadow: none; color: inherit; opacity: 1; }
    .caption-left, .caption-center, .caption-right { justify-content: center; text-align: center; }
    .carousel-caption-inner { max-width: 100%; }
    .carousel-btn.btn-outline-light { border-color: var(--cor-texto); color: var(--cor-texto); }
    .carousel-btn.btn-outline-light:hover { background: var(--cor-texto); color: #fff; }

    .carousel-ctrl { width: 36px; height: 36px; top: 40%; }
    .carousel-ctrl svg { width: 16px; height: 16px; }
    .carousel-ctrl-prev { left: 6px; }
    .carousel-ctrl-next { right: 6px; }
    .carousel-dots { bottom: 8px; top: auto; }
    .carousel-link-full { bottom: 0; height: 100%; }

    .informativos-grid.informativos-count-1,
    .informativos-grid.informativos-count-2,
    .informativos-grid.informativos-count-3,
    .informativos-grid.informativos-count-4 { grid-template-columns: 1fr; max-width: 100%; }
    .informativos-secao-header { text-align: left; }
}
