/* ===========================================================
   ABMS - Site 2026
   Paleta principal:
     Verde primário: #0d5e3a (verde escuro ABMS)
     Verde claro:    #2f9e5e
     Verde botão:    #2faa53
     Laranja:        #f39200
     Cinza fundo:    #edf0ee / #f6f6f4
   =========================================================== */

:root {
    --abms-green-dark: #0d5e3a;
    --abms-green: #1f7a47;
    --abms-green-light: #2f9e5e;
    --abms-green-btn: #2faa53;
    --abms-orange: #f39200;
    --abms-bg-soft: #f6f6f4;
    --abms-bg-grey: #edf0ee;
    --abms-text: #2b2b2b;
    --abms-muted: #6c757d;
}

html, body {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: var(--abms-text);
    background: #ffffff;
    /* Previne barra de rolagem horizontal no mobile (qualquer elemento largo */
    /*  demais é cortado em vez de empurrar a página).                         */
    overflow-x: hidden;
    /* Garante altura mínima sem usar 100vh, que quebra em iOS Safari por */
    /* causa da barra de URL                                              */
    min-height: 100%;
    margin: 0;
    padding: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Montserrat', 'Open Sans', sans-serif;
    color: var(--abms-green-dark);
    font-weight: 700;
}

a { color: var(--abms-green-dark); }
a:hover { color: var(--abms-green-light); }

/* ============== HEADER / NAVBAR ============== */
.abms-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}

.abms-navbar .navbar-brand img {
    height: 70px;
    max-height: 70px;
}

.abms-navbar .nav-link {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--abms-text) !important;
    margin: 0 0.35rem;
    padding: 0.6rem 0.4rem !important;
    transition: color .2s ease;
}

.abms-navbar .nav-link:hover,
.abms-navbar .nav-item.active .nav-link {
    color: var(--abms-green-light) !important;
}

.abms-navbar .dropdown-menu {
    border: 0;
    border-radius: 0;
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    border-top: 3px solid var(--abms-green-light);
}

.abms-navbar .dropdown-item {
    font-size: 0.88rem;
    padding: 0.5rem 1rem;
    color: var(--abms-text);
}
.abms-navbar .dropdown-item:hover {
    background: var(--abms-bg-soft);
    color: var(--abms-green-dark);
}

.abms-social {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin-left: 1rem;
}
.abms-social a {
    width: 30px; height: 30px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: var(--abms-green-dark);
    color: #fff !important;
    font-size: 0.95rem;
    transition: background .2s ease;
    text-decoration: none;
}
.abms-social a:hover { background: var(--abms-orange); }

/* ============== HERO BANNER ============== */
.abms-hero {
    position: relative;
    background: var(--abms-bg-soft);
    padding: 0;
}
/* Banner principal: imagem simples e clicável, sem texto/overlay/contador */
.abms-hero-link {
    display: block;
    line-height: 0;
    overflow: hidden;
}
.abms-hero-img {
    display: block;
    width: 100%;
    height: auto;
}
/* Efeito de hover apenas quando NÃO está dentro de um carrossel
   (no carrossel o transform sobrescreveria o translateX do Bootstrap
    e quebraria a animação de slide). */
.abms-hero-link:not(.carousel):hover .abms-hero-img {
    transform: scale(1.01);
    filter: brightness(1.03);
    transition: transform .25s ease, filter .25s ease;
}
/* Garante slide do Bootstrap funcionando dentro do hero */
.abms-hero .carousel-inner { overflow: hidden; }
.abms-hero .carousel-item { transition: transform .6s ease-in-out; }
.abms-hero .carousel-item img { width: 100%; height: auto; display: block; }
.abms-hero-content {
    position: relative;
    padding: 3rem 2.5rem;
    z-index: 2;
    max-width: 620px;
}
.abms-hero-content h1 {
    color: #fff;
    font-size: 2.6rem;
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 0.6rem;
}
.abms-hero-content h1 .highlight {
    color: var(--abms-orange);
}
.abms-hero-content .hero-meta {
    font-size: 1.05rem;
    margin-bottom: 0.25rem;
    opacity: 0.95;
}
.abms-hero-content .btn-saiba {
    margin-top: 1.5rem;
}

/* ============== CARDS CONGRESSO (CNMS 2026) ============== */
.abms-cnms-cards {
    padding: 1.25rem 0 0.5rem;
    background: var(--abms-bg-soft);
}
.abms-cnms-card {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 8px;
    line-height: 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.12);
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
    text-decoration: none;
}
.abms-cnms-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    transition: transform .35s ease;
}
.abms-cnms-card {
    aspect-ratio: 16 / 9;
}
.abms-cnms-card-label {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(180deg, rgba(30,90,40,0.85) 0%, rgba(20,70,30,0.95) 100%);
    color: #fff;
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.2;
    text-align: center;
    padding: 0.85rem 0.75rem;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 2px rgba(0,0,0,0.35);
    border-top: 2px solid rgba(255,255,255,0.15);
}
.abms-cnms-card-label i {
    color: var(--abms-orange, #f29400);
    margin-left: 0.35rem;
    font-size: 0.95em;
    vertical-align: middle;
}
.abms-cnms-card:hover {
    box-shadow: 0 6px 14px rgba(0,0,0,0.18);
    filter: brightness(1.04);
}
.abms-cnms-card:hover img {
    transform: scale(1.03);
}
.abms-cnms-card:hover .abms-cnms-card-label {
    background: linear-gradient(180deg, rgba(35,110,50,0.92) 0%, rgba(25,85,35,0.98) 100%);
}
@media (max-width: 575.98px) {
    .abms-cnms-card-label { font-size: 1rem; padding: 0.65rem 0.5rem; }
}

/* Countdown */
.abms-countdown {
    position: absolute;
    right: 2rem;
    bottom: 1.5rem;
    z-index: 2;
    display: flex;
    gap: 0.5rem;
    background: rgba(255,255,255,0.92);
    padding: 0.75rem 1rem;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.abms-countdown .unit {
    text-align: center;
    min-width: 56px;
}
.abms-countdown .unit b {
    display: block;
    font-size: 1.3rem;
    color: var(--abms-green-dark);
    font-weight: 800;
    line-height: 1;
}
.abms-countdown .unit span {
    font-size: 0.7rem;
    color: var(--abms-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ============== Buttons ============== */
.btn-abms {
    background: var(--abms-green-btn);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.55rem 1.2rem;
    font-weight: 600;
    font-size: 0.92rem;
    transition: all .2s ease;
}
.btn-abms:hover {
    background: var(--abms-green-dark);
    color: #fff;
}
.btn-abms-sm {
    padding: 0.35rem 0.9rem;
    font-size: 0.82rem;
}

/* ============== Section blocks ============== */
.abms-section {
    background: var(--abms-bg-soft);
    padding: 0;
    margin: 0;
}
.abms-section-card {
    background: #fff;
    border-radius: 10px;
    padding: 1.5rem 2rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
    margin-left: 2.5rem;       /* distância da borda esquerda da página */
    margin-right: 2.5rem;      /* distância da borda direita da página */
}
/* Variante: bloco com fundo cinza (ex.: Informações Científicas) */
.abms-section-card.is-grey {
    background: #d9dcd6;
    box-shadow: none;
}
@media (max-width: 768px) {
    .abms-section-card {
        margin-left: 0.5rem;
        margin-right: 0.5rem;
        padding: 1rem;
    }
}
.abms-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}
.abms-section-title h3 {
    font-size: 1.1rem;
    color: var(--abms-green-dark);
    margin: 0;
    font-weight: 700;
}
.abms-section-title a {
    font-size: 0.85rem;
    color: var(--abms-muted);
    text-decoration: none;
    font-weight: 600;
}
.abms-section-title a:hover { color: var(--abms-green-dark); }

/* ============== News cards (layout horizontal: foto | texto) ============== */
.abms-news-card {
    background: #d9dcd6;             /* card cinza dentro do bloco branco */
    border-radius: 0;
    overflow: hidden;
    border: 1px solid #cfd2cc;
    height: 100%;
    display: flex;
    flex-direction: row;             /* foto à esquerda, texto à direita */
    align-items: stretch;
    box-sizing: border-box;
}
.abms-news-card .news-img-wrap {
    flex: 0 0 42%;
    max-width: 42%;
    overflow: hidden;
}
.abms-news-card .news-img {
    width: 100%;
    height: 100%;
    min-height: 110px;
    object-fit: cover;
    display: block;
}
.abms-news-card .news-body {
    padding: 0.6rem 0.9rem 0.6rem 1rem;   /* respiro entre a imagem e o título */
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0.45rem;
    background: transparent;
}
.abms-news-card h5 {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--abms-green-dark);
    line-height: 1.25;
    margin: 0;
}
.abms-news-card .news-meta {
    font-size: 0.75rem;
    color: #555;
}
.abms-news-card .news-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    gap: 0.5rem;
}
.abms-news-card .news-actions .btn-abms {
    background: #fff;
    color: var(--abms-green-dark);
    border: 1px solid var(--abms-green-dark);
}
.abms-news-card .news-actions .btn-abms:hover {
    background: var(--abms-green-dark);
    color: #fff;
}

/* Em telas estreitas volta a empilhar para legibilidade */
@media (max-width: 575.98px) {
    .abms-news-card { flex-direction: column; }
    .abms-news-card .news-img-wrap { flex: 0 0 auto; max-width: 100%; }
    .abms-news-card .news-img { aspect-ratio: 16/9; height: auto; }
}

/* ============== Scientific info cards (com imagem de fundo no header) ============== */
.abms-sci-card {
    background: #fff;
    border-radius: 0;
    overflow: hidden;
    border: 1px solid #e9ecef;
    padding: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.abms-sci-card .sci-head {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--abms-green-dark); /* fallback */
    min-height: 160px;
    display: flex;
    align-items: flex-start;          /* título no topo */
    justify-content: flex-start;      /* título à esquerda */
    padding: 1rem 1.1rem;
}
.abms-sci-card .sci-head::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.15) 55%, rgba(0,0,0,0) 100%);
}
.abms-sci-card .sci-head-title {
    position: relative;
    z-index: 2;
    color: #fff;
    font-weight: 800;
    font-size: 1.05rem;
    line-height: 1.25;
    text-shadow: 0 2px 4px rgba(0,0,0,.55);
    max-width: 75%;                   /* evita texto colado na borda direita */
}
.abms-sci-card .sci-body {
    padding: 0.75rem 1rem 1rem;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: left -6px bottom -6px;
    background-size: 80px;
    min-height: 60px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
}

/* ============== Library banner ============== */
.abms-library {
    position: relative;
    margin: 0;
    padding: 1.25rem 0 1.5rem;
    background-image: url('../imagens/biblioteca/fundoBiblioteca.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
}
.abms-library h2 {
    color: #fff;
    text-align: center;
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 1.25rem;
    padding: 0.5rem 1.5rem;
    background: rgba(13,94,58,0.85);
    border-radius: 8px;
    display: inline-block;
}
.abms-library-icons {
    background: #fff;
    border-radius: 10px;
    padding: 1.75rem 1.5rem;
    box-shadow: 0 6px 22px rgba(0,0,0,0.18);
    margin-left: 2.5rem;          /* mesma largura/posição do .abms-section-card */
    margin-right: 2.5rem;
}
.abms-library-icon {
    text-align: center;
    text-decoration: none;
    color: var(--abms-green-dark);
    display: block;
    padding: 0.5rem;
    transition: transform .2s ease;
}
.abms-library-icon:hover {
    transform: translateY(-3px);
    color: var(--abms-orange);
}
.abms-library-icon img {
    height: 110px;                /* ícones maiores */
    width: auto;
    margin-bottom: 0.6rem;
}
.abms-library-icon span {
    display: block;
    font-size: 1rem;
    font-weight: 700;
}
@media (max-width: 768px) {
    .abms-library-icons { margin-left: 0.5rem; margin-right: 0.5rem; padding: 1rem 0.5rem; }
    .abms-library-icon img { height: 70px; }
}

/* ============== Sector data (foto à esquerda + bloco verde à direita) ============== */
.abms-setor-card {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    height: 100%;
    border: 1px solid #cfd2cc;
    overflow: hidden;
    background: var(--abms-green-dark);
}
.abms-setor-card .setor-img-wrap {
    position: relative;
    flex: 0 0 42%;
    max-width: 42%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 150px;
}
/* Botão "Saiba Mais" sobreposto na parte inferior esquerda da imagem */
.abms-setor-card .setor-saiba {
    position: absolute;
    left: 10px;
    bottom: 10px;
    background: var(--abms-green-btn);
    color: #fff;
    border: none;
    padding: 0.4rem 1rem;
    font-weight: 700;
    font-size: 0.82rem;
}
.abms-setor-card .setor-saiba:hover {
    background: var(--abms-orange);
    color: #fff;
}
.abms-setor-card .setor-texto {
    flex: 1;
    background: var(--abms-green-dark);
    color: #fff;
    padding: 0.9rem 1rem;
    display: flex;
    align-items: center;
}
.abms-setor-card .setor-texto p {
    font-size: 0.85rem;
    line-height: 1.35;
    margin: 0;
}
.abms-setor-card .setor-texto strong { color: #ffd966; }

/* Em telas estreitas empilha: foto em cima, texto embaixo */
@media (max-width: 575.98px) {
    .abms-setor-card { flex-direction: column; }
    .abms-setor-card .setor-img-wrap { flex: 0 0 auto; max-width: 100%; min-height: 180px; }
}

/* ============== Events ============== */
.abms-event-card {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    height: 100%;
}
.abms-event-card h5 {
    font-size: 0.95rem;
    color: var(--abms-green-dark);
    margin: 0;
    font-weight: 700;
    line-height: 1.3;
}
.abms-event-card .event-date {
    font-size: 0.8rem;
    color: var(--abms-muted);
}
.abms-event-card .event-actions {
    margin-top: auto;
}

/* ============== Footer ============== */
.abms-footer { font-family: 'Open Sans', sans-serif; }
.abms-footer-top {
    background: var(--abms-green-dark);
    color: #fff;
    padding: 0.85rem 0;
}
.abms-footer-links {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    align-items: center;
}
.abms-footer-links a {
    color: #fff;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
}
.abms-footer-links a:hover { color: var(--abms-orange); }

.abms-footer-bottom {
    background: #f6f7f5;
    padding: 2.5rem 0 1.5rem;
}
.abms-footer-logo { width: 200px; max-width: 100%; }
.abms-footer-bottom h5 {
    color: var(--abms-green-dark);
    font-weight: 700;
}
.abms-footer-bottom p {
    color: #444;
    font-size: 0.9rem;
    margin: 0;
}
.abms-footer-bottom a { color: var(--abms-green-dark); text-decoration: none; }
.abms-footer-bottom a:hover { color: var(--abms-orange); }
.abms-footer-social {
    display: flex;
    gap: 0.45rem;
    justify-content: flex-end;
}
.abms-footer-social a {
    width: 34px; height: 34px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: var(--abms-green-dark);
    color: #fff !important;
    font-size: 1rem;
    transition: background .2s ease;
}
.abms-footer-social a:hover { background: var(--abms-orange); }
.abms-copy { font-size: 0.78rem; color: var(--abms-muted); }

/* ============== Responsive ============== */
@media (max-width: 992px) {
    .abms-navbar .nav-link { margin: 0; padding: 0.5rem 0 !important; }
    .abms-social { margin-left: 0; margin-top: 0.5rem; justify-content: flex-start; }
    .abms-hero-content h1 { font-size: 1.8rem; }
    .abms-hero-content { padding: 2rem 1.5rem; }
    .abms-countdown { position: static; margin: 1rem 1.5rem; }
}
@media (max-width: 768px) {
    .abms-data-row { grid-template-columns: 1fr; }
    .abms-hero-card { min-height: auto; }
    .abms-footer-social { justify-content: flex-start; }
}

/* ============== Page content (interior) ============== */
.abms-page-section { padding: 3rem 0; }
.abms-page-section h1 { color: var(--abms-green-dark); font-size: 2rem; margin-bottom: 1.5rem; }
.abms-page-section h2 { color: var(--abms-green-dark); font-size: 1.4rem; margin-top: 1.5rem; }
.abms-page-section .credito-imagem { font-size: 0.78rem; color: var(--abms-muted); font-style: italic; }

/* ============== GLOBAL: cantos retos em TODO o site ==============
   Sobrescreve qualquer border-radius (do Bootstrap ou de regras
   anteriores deste arquivo) para que todos os cards, imagens,
   botões, alerts, dropdowns, inputs, etc. fiquem com cantos retos. */
*,
*::before,
*::after,
.abms-news-card,
.abms-news-card .news-img-wrap,
.abms-section-card,
.abms-library-icons,
.abms-data-card,
.abms-sci-card,
.abms-event-card,
.abms-event-tile,
.abms-event-tile .event-logo-wrap,
.abms-presidente,
.abms-presidente .presidente-foto,
.abms-hero-card,
.abms-countdown,
.abms-library h2,
.btn,
.btn-abms,
.btn-abms-sm,
.card,
.alert,
.dropdown-menu,
.form-control,
.form-select,
img,
.img-fluid {
    border-radius: 0 !important;
}

/* ===========================================================
   RESPONSIVO GLOBAL — Mobile-first overrides
   - Imagens nunca estouram a largura do container
   - Cards horizontais empilham no celular
   - Espaçamentos reduzidos no mobile
   =========================================================== */

/* ---------- 1) Imagens: nunca estouram a largura ---------- */
img, picture, video, iframe, embed {
    max-width: 100% !important;
    height: auto;
}
/* Conteúdo HTML vindo do banco (campo `content`) pode ter <img> com
   width/height fixos — força responsividade dentro do post */
.abms-page-section .content-body img,
.abms-page-section .content-body iframe,
.abms-page-section img,
.abms-page-section table {
    max-width: 100% !important;
    height: auto;
}
.abms-page-section .content-body {
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
}
.abms-page-section .content-body table {
    display: block;
    overflow-x: auto;
}

/* ---------- 2) Container e seções no celular ---------- */
@media (max-width: 991.98px) {
    body { font-size: 0.95rem; }

    .abms-section-card,
    .abms-library-icons {
        margin-left: 1rem;
        margin-right: 1rem;
        padding: 1.2rem 1rem;
    }
    .abms-page-section { padding: 2rem 0; }
    .abms-page-section h1 { font-size: 1.5rem; }
    .abms-page-section h2 { font-size: 1.2rem; }
}

@media (max-width: 575.98px) {
    .abms-section-card,
    .abms-library-icons {
        margin-left: 0.5rem;
        margin-right: 0.5rem;
        padding: 1rem 0.75rem;
    }
    .abms-section-title h3 { font-size: 1rem; }
    .abms-section-title a  { font-size: 0.78rem; }
}

/* ---------- 3) Navbar no celular ---------- */
@media (max-width: 991.98px) {
    .abms-navbar { padding-top: 0.5rem; padding-bottom: 0.5rem; }
    .abms-navbar .navbar-brand img { height: 56px; }
    .abms-navbar .navbar-collapse {
        background: #fff;
        margin-top: 0.5rem;
        padding: 0.75rem 0;
        border-top: 1px solid #eee;
    }
    .abms-navbar .nav-link { padding: 0.55rem 0 !important; }
    .abms-navbar .dropdown-menu {
        border: none;
        box-shadow: none;
        padding-left: 1rem;
        border-left: 2px solid var(--abms-green-light);
        margin-left: 0.5rem;
    }
    .abms-social {
        margin-left: 0;
        margin-top: 0.75rem;
        justify-content: flex-start;
        gap: 0.4rem;
    }
}

/* ---------- 4) Cards de notícia / dados do setor empilham no celular ---------- */
@media (max-width: 767.98px) {
    .abms-news-card {
        flex-direction: column;
    }
    .abms-news-card .news-img-wrap {
        flex: 0 0 auto;
        max-width: 100%;
        width: 100%;
    }
    .abms-news-card .news-img {
        min-height: 180px;
        height: auto;
        aspect-ratio: 16/9;
    }
    .abms-news-card .news-body { padding: 0.8rem 1rem; }

    .abms-setor-card {
        flex-direction: column;
    }
    .abms-setor-card .setor-img-wrap {
        flex: 0 0 auto;
        max-width: 100%;
        width: 100%;
        min-height: 180px;
    }
    .abms-setor-card .setor-texto { padding: 1rem; }
}

/* ---------- 5) Ícones da Biblioteca Técnica no mobile ---------- */
@media (max-width: 575.98px) {
    .abms-library { padding: 1rem 0 1.25rem; }
    .abms-library h2 {
        font-size: 1rem;
        padding: 0.4rem 1rem;
    }
    .abms-library-icon img { height: 56px !important; }
    .abms-library-icon span { font-size: 0.78rem; }
}

/* ---------- 6) Hero banner clicável no mobile ---------- */
@media (max-width: 575.98px) {
    .abms-hero .container {
        padding-left: 0;
        padding-right: 0;
    }
    .abms-hero-img { width: 100%; }
}

/* ---------- 7) Footer no celular ---------- */
@media (max-width: 767.98px) {
    .abms-footer-bottom { padding: 1.5rem 0; text-align: center; }
    .abms-footer-logo { width: 160px; }
    .abms-footer-bottom h5 { margin-top: 1rem; }
    .abms-footer-social { justify-content: center !important; }
    .abms-footer-links {
        flex-direction: column;
        gap: 0.5rem;
        align-items: center;
    }
    .abms-footer-top { text-align: center; }
}

/* ---------- 8) Tabelas (admin biblioteca) com scroll horizontal ---------- */
.table-responsive { -webkit-overflow-scrolling: touch; }
@media (max-width: 767.98px) {
    .table { font-size: 0.85rem; }
}

/* ---------- 9) Cards de eventos / informações científicas no mobile ---------- */
@media (max-width: 767.98px) {
    .abms-event-tile .event-logo-wrap { height: 130px; }
    .abms-sci-card .sci-head { min-height: 130px; }
    .abms-sci-card .sci-head-title { font-size: 0.95rem; max-width: 85%; }
    .abms-presidente .presidente-foto-wrap { height: 200px; }
}

/* ---------- 10) Lista de PDFs da biblioteca técnica ---------- */
@media (max-width: 575.98px) {
    .biblioteca-pdf-item {
        flex-direction: column;
        align-items: flex-start;
        padding: 0.9rem 1rem;
        gap: 0.5rem;
    }
    .biblioteca-pdf-item .pdf-actions { width: 100%; }
    .biblioteca-pdf-item .pdf-actions .btn { width: 100%; }
    .biblioteca-cat img { height: 60px; }
}

/* ===========================================================
   CORREÇÕES DEFENSIVAS — Mobile: "conteúdo para no 1º bloco"
   ===========================================================
   Sintomas conhecidos que essas regras eliminam:
   - Bootstrap JS demorou para carregar e o navbar mobile ficou
     "preso" no estado collapsed, ocupando espaço atrás do hero.
   - Algum elemento com largura maior que 100% empurrava a
     viewport e causava barra de rolagem horizontal (em alguns
     iOS Safari, isso "trava" o scroll vertical na 1ª seção).
   - Elementos com transform/filter aplicados deixavam de aceitar
     toques quando combinados com sticky/fixed.
   =========================================================== */

/* Garante que NENHUM elemento estoura a largura da viewport.
   Funciona como rede de segurança contra qualquer img/iframe/div
   que tenha width fixa em pixels acidentalmente. */
img, video, iframe, object, embed, table {
    max-width: 100%;
}

/* O container principal nunca pode exceder a viewport */
.container,
.container-fluid,
.abms-section,
.abms-section-card,
.abms-library,
.abms-library-icons,
.abms-hero,
.abms-hero-link {
    max-width: 100%;
    box-sizing: border-box;
}

/* No mobile, força o navbar collapse a ficar fechado por padrão
   mesmo se o Bootstrap JS demorar para carregar/falhar */
@media (max-width: 991.98px) {
    .navbar-collapse:not(.show):not(.collapsing) {
        display: none !important;
    }
    /* Quando o usuário clica no botão, o JS adiciona .show — aí aparece */
    .navbar-collapse.show {
        display: block !important;
    }
    /* Garante que a área visível do header não fica gigante */
    .abms-header { max-height: 100vh; overflow-y: auto; }
    /* Mas o header sticky não pode ocupar mais que ~80% da tela */
    .abms-header:not(:has(.navbar-collapse.show)) { max-height: 80px; overflow: visible; }
}

/* Sticky do header pode esconder topo de seções com âncora — compensa */
.abms-section, .abms-page-section, .abms-hero {
    scroll-margin-top: 90px;
}

/* iOS Safari: força hardware acceleration apenas na seção .abms-hero
   (NÃO no .abms-hero-link nem no .abms-hero-img — isso quebra a animação
   do carrossel Bootstrap, que usa transform: translateX no .carousel-item). */
.abms-hero {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}
