/**
 * HM Regional de Montenegro - Folha de estilos principal
 * Versão: 1.0
 * Data: Maio/2025
 * Descrição: Este arquivo contém todos os estilos para o site do hospital
 */

/* ======= Variáveis e Estilos Básicos ======= */
:root {
    --primary-color: #005a87;
    --secondary-color: #00a6d6;
    --accent-color: #f8f9fa;
    --text-color: #333;
    --light-text: #fff;
    --border-color: #e0e0e0;
    --success-color: #28a745;
    --font-main: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-main);
    color: var(--text-color);
    line-height: 1.6;
}

a {
    text-decoration: none;
    color: var(--primary-color);
}

img {
    max-width: 100%;
}

.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.btn {
    display: inline-block;
    background-color: var(--primary-color);
    color: var(--light-text);
    padding: 12px 25px;
    border-radius: 5px;
    margin-top: 15px;
    transition: background-color 0.3s;
    border: none;
    cursor: pointer;
    font-weight: 500;
}

.btn:hover {
    background-color: var(--secondary-color);
}

.section-title {
    text-align: center;
    margin-bottom: 40px;
    position: relative;
}

.section-title h2 {
    font-size: 32px;
    color: var(--primary-color);
    display: inline-block;
    padding-bottom: 10px;
}

.section-title h2::after {
    content: '';
    display: block;
    width: 80px;
    height: 4px;
    background-color: var(--secondary-color);
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

.view-all-container {
    text-align: center;
    margin-top: 40px;
}

/* ======= Top Bar ======= */
.top-bar {
    background-color: var(--primary-color);
    color: var(--light-text);
    padding: 8px 0;
}

.top-navigation {
    display: flex;
    justify-content: flex-end;
    gap: 20px;
}

.top-navigation a {
    color: var(--light-text);
    font-size: 14px;
}

/* ======= Main Header ======= */
.main-header {
    padding: 20px 0;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    width: 200px;
}

.main-navigation {
    display: flex;
    gap: 25px;
}

.main-navigation a {
    color: var(--text-color);
    font-weight: 500;
    transition: color 0.3s;
}

.main-navigation a:hover {
    color: var(--secondary-color);
}

/* ======= Mobile Menu ======= */
.mobile-menu-btn {
    display: none;
    background: none;
    border: none;
    font-size: 24px;
    color: var(--primary-color);
    cursor: pointer;
}

/* ======= Search Bar ======= */
.search-section {
    padding: 20px 0;
    background-color: var(--accent-color);
}

.search-container {
    display: flex;
    max-width: 600px;
    margin: 0 auto;
}

.search-input {
    flex: 1;
    padding: 12px 15px;
    border: 1px solid var(--border-color);
    border-right: none;
    border-radius: 5px 0 0 5px;
    font-size: 16px;
}

.search-btn {
    background-color: var(--primary-color);
    color: var(--light-text);
    border: none;
    padding: 0 20px;
    border-radius: 0 5px 5px 0;
    cursor: pointer;
}

/* ======= Main Carousel ======= */
.main-carousel {
    position: relative;
    height: 500px;
    overflow: hidden;
}

.carousel-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 1s ease-in-out;
    display: flex;
    align-items: center;
}

.carousel-slide.active {
    opacity: 1;
}

.carousel-content {
    background-color: rgba(0, 90, 135, 0.8);
    color: var(--light-text);
    padding: 30px;
    max-width: 600px;
    margin-left: 10%;
    border-radius: 8px;
}

.carousel-content h2 {
    font-size: 32px;
    margin-bottom: 15px;
}

.carousel-content p {
    margin-bottom: 20px;
}

.cta-btn {
    display: inline-block;
    background-color: var(--light-text);
    color: var(--primary-color);
    padding: 12px 25px;
    border-radius: 5px;
    font-weight: 500;
    transition: all 0.3s;
}

.cta-btn:hover {
    background-color: var(--secondary-color);
    color: var(--light-text);
}

/* Carousel Navigation */
.carousel-nav {
    position: absolute;
    bottom: 30px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 10px;
}

.carousel-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: rgba(255,255,255,0.5);
    cursor: pointer;
    transition: background-color 0.3s;
}

.carousel-dot.active {
    background-color: white;
}

/* ======= Video Section ======= */
.video-section {
    padding: 60px 0;
    background-color: var(--accent-color);
}

.video-container {
    max-width: 900px;
    margin: 0 auto;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.video-placeholder {
    background-color: #333;
    height: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 20px;
    position: relative;
}

.video-play-btn {
    position: absolute;
    width: 80px;
    height: 80px;
    background-color: rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    color: white;
    cursor: pointer;
    transition: all 0.3s;
}

.video-play-btn:hover {
    background-color: var(--primary-color);
    transform: scale(1.1);
}

/* ======= Quick Access ======= */
.quick-access {
    background-color: var(--accent-color);
    padding: 25px 0;
    text-align: center;
}

.quick-links {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
    margin-top: 20px;
}

.quick-link {
    background-color: var(--light-text);
    padding: 15px 20px;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
    width: 200px;
}

.quick-link:hover {
    transform: translateY(-5px);
}

.quick-link i {
    font-size: 36px;
    color: var(--primary-color);
    margin-bottom: 10px;
}

.quick-link h3 {
    font-size: 16px;
    margin-bottom: 8px;
}

/* ======= Features Section ======= */
.features {
    padding: 60px 0;
}

.feature-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.feature-card {
    background-color: var(--light-text);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
}

.feature-card:hover {
    transform: translateY(-10px);
}

.feature-image {
    height: 200px;
    background-size: cover;
    background-position: center;
}

.feature-content {
    padding: 25px;
}

.feature-content h3 {
    font-size: 20px;
    margin-bottom: 15px;
    color: var(--primary-color);
}

.read-more {
    display: inline-block;
    color: var(--secondary-color);
    font-weight: 500;
    margin-top: 15px;
}

/* ======= Medical Team Section ======= */
.medical-team {
    padding: 60px 0;
    background-color: var(--accent-color);
}

.team-members {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 30px;
    margin-top: 40px;
}

.team-member {
    background-color: var(--light-text);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
}

.team-member:hover {
    transform: translateY(-10px);
}

.member-image img {
    width: 100%;
    height: auto;
}

.member-info {
    padding: 20px;
}

.member-specialty {
    color: var(--secondary-color);
    font-weight: 500;
    margin-bottom: 10px;
}

/* ======= Services Section ======= */
.services-section {
    padding: 60px 0;
}

.services-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 30px;
    margin-top: 40px;
}

.service-item {
    background-color: var(--light-text);
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    text-align: center;
    transition: transform 0.3s;
}

.service-item:hover {
    transform: translateY(-10px);
}

.service-item i {
    font-size: 40px;
    color: var(--primary-color);
    margin-bottom: 15px;
}

/* ======= About Section ======= */
.about {
    background-color: var(--accent-color);
    padding: 60px 0;
}

.about-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

.about-image {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.about-text h2 {
    color: var(--primary-color);
    margin-bottom: 20px;
    font-size: 32px;
}

.stats {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin-top: 30px;
}

.stat-item {
    flex: 1;
    min-width: 120px;
    text-align: center;
}

/* ======= News Section ======= */
.news {
    padding: 60px 0;
}

.news-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.news-card {
    background-color: var(--light-text);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.news-image {
    height: 200px;
    background-size: cover;
    background-position: center;
}

.news-content {
    padding: 25px;
}

.news-date {
    color: var(--secondary-color);
    font-size: 14px;
    margin-bottom: 10px;
}

.news-content h3 {
    font-size: 20px;
    margin-bottom: 15px;
}

/* ======= Contact Section ======= */
.contact-section {
    padding: 60px 0;
    background-color: var(--accent-color);
}

.contact-form-container {
    max-width: 800px;
    margin: 40px auto 0;
    background-color: var(--light-text);
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid var(--border-color);
    border-radius: 5px;
    font-size: 16px;
}

.form-group textarea {
    resize: vertical;
}

/* ======= Footer ======= */
.footer {
    background-color: var(--primary-color);
    color: var(--light-text);
    padding: 60px 0 20px;
}

.footer-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 40px;
    margin-bottom: 40px;
}

.footer-column h3 {
    font-size: 18px;
    margin-bottom: 20px;
    position: relative;
}

.footer-column h3::after {
    content: '';
    display: block;
    width: 40px;
    height: 3px;
    background-color: var(--secondary-color);
    margin-top: 10px;
}

.footer-column ul {
    list-style: none;
}

.footer-column ul li {
    margin-bottom: 10px;
}

.footer-column ul li a {
    color: var(--light-text);
    transition: opacity 0.3s;
}

.footer-column ul li a:hover {
    opacity: 0.8;
}

.contact-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 15px;
}

.contact-item i {
    margin-right: 10px;
    margin-top: 5px;
}

.social-links {
    display: flex;
    gap: 15px;
    margin-top: 20px;
}

.social-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    transition: background-color 0.3s;
}

.social-links a:hover {
    background-color: var(--secondary-color);
}

.copyright {
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 14px;
}

/* ======= Cookie Policy ======= */
.cookie-policy {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--primary-color);
    color: var(--light-text);
    padding: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 1000;
}

.cookie-text {
    flex: 1;
    padding-right: 20px;
}

.cookie-buttons {
    display: flex;
    gap: 10px;
}

.cookie-btn {
    padding: 8px 15px;
    border-radius: 5px;
    cursor: pointer;
    border: none;
    font-weight: 500;
}

.accept-btn {
    background-color: var(--success-color);
    color: var(--light-text);
}

.learn-more-btn {
    background-color: rgba(255, 255, 255, 0.2);
    color: var(--light-text);
}

/* ======= Patient Login Area ======= */
.patient-login {
    position: fixed;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--primary-color);
    color: var(--light-text);
    padding: 15px;
    border-radius: 8px 0 0 8px;
    box-shadow: -3px 0 10px rgba(0, 0, 0, 0.1);
    z-index: 999;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: right 0.3s;
}

.patient-login.open {
    right: 350px;
}

.patient-login-toggle {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.patient-login-toggle i {
    font-size: 24px;
    margin-bottom: 5px;
}

.patient-login-form {
    position: fixed;
    top: 0;
    right: -350px;
    width: 350px;
    height: 100%;
    background-color: var(--light-text);
    box-shadow: -3px 0 10px rgba(0, 0, 0, 0.1);
    z-index: 999;
    padding: 30px;
    transition: right 0.3s;
    overflow-y: auto;
}

.patient-login-form.open {
    right: 0;
}

.patient-login-form h3 {
    color: var(--primary-color);
    margin-bottom: 20px;
    font-size: 24px;
}

.patient-login-form .form-group {
    margin-bottom: 20px;
}

.patient-login-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
}

.patient-login-form input {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid var(--border-color);
    border-radius: 5px;
    font-size: 16px;
}

.patient-login-form .close-btn {
    position: absolute;
    top: 15px;
    right: 15px;
    background: none;
    border: none;
    font-size: 20px;
    color: var(--text-color);
    cursor: pointer;
}

.patient-login-form .extra-links {
    margin-top: 20px;
    text-align: center;
}

/* ======= Chat Widget ======= */
.chat-widget {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 999;
}

.chat-toggle {
    width: 60px;
    height: 60px;
    background-color: var(--primary-color);
    color: var(--light-text);
    border-radius: 50%;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.chat-toggle i {
    font-size: 24px;
}

.chat-box {
    position: absolute;
    bottom: 80px;
    right: 0;
    width: 300px;
    height: 400px;
    background-color: var(--light-text);
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
    display: none;
    flex-direction: column;
    overflow: hidden;
}

.chat-box.open {
    display: flex;
}

.chat-header {
    background-color: var(--primary-color);
    color: var(--light-text);
    padding: 15px;
    font-weight: 500;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.chat-header .close-chat {
    background: none;
    border: none;
    color: var(--light-text);
    font-size: 16px;
    cursor: pointer;
}

.chat-messages {
    flex: 1;
    padding: 15px;
    overflow-y: auto;
}

.chat-input {
    padding: 10px;
    border-top: 1px solid var(--border-color);
    display: flex;
}

.chat-input input {
    flex: 1;
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 5px 0 0 5px;
}

.chat-input button {
    background-color: var(--primary-color);
    color: var(--light-text);
    border: none;
    padding: 0 15px;
    border-radius: 0 5px 5px 0;
    cursor: pointer;
}

/* ======= Responsive Styles ======= */
@media (max-width: 968px) {
    .main-navigation {
        display: none;
    }

    .mobile-menu-btn {
        display: block;
    }

    .about-content {
        grid-template-columns: 1fr;
    }

    .carousel-content {
        margin-left: 5%;
        max-width: 90%;
    }

    .video-placeholder {
        height: 400px;
    }
}

@media (max-width: 768px) {
    .quick-links {
        flex-direction: column;
        align-items: center;
    }

    .feature-cards,
    .news-cards {
        grid-template-columns: 1fr;
    }

    .stats {
        flex-direction: column;
        gap: 15px;
    }

    .main-carousel {
        height: 400px;
    }

    .carousel-content h2 {
        font-size: 24px;
    }

    .video-placeholder {
        height: 300px;
    }
}

@media (max-width: 480px) {
    .main-carousel {
        height: 350px;
    }

    .carousel-content {
        padding: 15px;
    }

    .carousel-content p {
        font-size: 14px;
    }

    .cta-btn {
        padding: 10px 15px;
        font-size: 14px;
    }
}

/* Estilos para contadores animados */
.stat-number {
    font-size: 36px;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 5px;
    transition: all 0.8s ease;
}

.stat-number.animate {
    counter-increment: stat;
    animation: countUp 2s forwards;
}

@keyframes countUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Ajuste responsivo para contadores */
@media (max-width: 768px) {
    .stat-number {
        font-size: 30px;
    }
}

/* Estilos para links nos blocos de acesso rápido */
.quick-link-anchor {
    text-decoration: none;
    color: inherit;
    display: block;
}

.quick-link-anchor:hover {
    text-decoration: none;
    color: inherit;
}

.quick-link-anchor .quick-link {
    height: 100%;
}

/* Ajuste para garantir que todo o bloco seja clicável */
.quick-links {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
    margin-top: 20px;
}

/* ======= Ajustes HM Regional - versão saneada ======= */
.patient-login a.patient-login-toggle {
    color: var(--light-text);
    text-decoration: none;
}

.whatsapp-floating {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 60px;
    height: 60px;
    background-color: #25D366;
    color: #fff;
    border-radius: 50%;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 999;
    text-decoration: none;
}

.whatsapp-floating i {
    font-size: 30px;
}

.whatsapp-floating:hover {
    transform: translateY(-2px);
    color: #fff;
}

.institutional-alert {
    background-color: #fff8e1;
    border-left: 4px solid #f6b000;
    padding: 18px 20px;
    border-radius: 8px;
    line-height: 1.6;
}

.safe-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 25px;
    margin-top: 30px;
}

.safe-card {
    background-color: var(--light-text);
    border-radius: 10px;
    padding: 28px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.08);
}

.safe-card i {
    color: var(--primary-color);
    font-size: 34px;
    margin-bottom: 15px;
}

@media (max-width: 768px) {
    .patient-login {
        right: 10px;
        top: auto;
        bottom: 95px;
        transform: none;
        padding: 10px;
    }

    .patient-login-toggle span {
        font-size: 11px;
    }
}


/* ======= Portal da Transparência - HM Regional v3 ======= */
.transparency-hero {
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    color: var(--light-text);
    padding: 70px 0;
}
.transparency-hero-content {
    max-width: 920px;
    text-align: center;
    margin: 0 auto;
}
.transparency-hero h1 {
    font-size: 46px;
    margin: 10px 0 15px;
    color: var(--light-text);
}
.transparency-hero p {
    font-size: 18px;
    opacity: 0.95;
    margin-bottom: 25px;
}
.eyebrow {
    display: inline-block;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
    color: var(--secondary-color);
    margin-bottom: 8px;
}
.transparency-hero .eyebrow { color: #fff; opacity: .9; }
.hero-actions,
.request-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.btn-secondary {
    background: #fff;
    color: var(--primary-color) !important;
    border: 1px solid var(--border-color);
}
.transparency-nav-wrap {
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 80;
    border-bottom: 1px solid var(--border-color);
    box-shadow: 0 3px 12px rgba(0,0,0,.05);
}
.transparency-nav {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 12px 0;
}
.transparency-nav a {
    white-space: nowrap;
    padding: 10px 14px;
    border-radius: 999px;
    background: var(--accent-color);
    color: var(--primary-color);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}
.transparency-nav a:hover { background: var(--primary-color); color: #fff; }
.section-block { padding: 60px 0; }
.alt-bg { background: var(--accent-color); }
.info-alert { margin-bottom: 28px; }
.kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 18px;
    margin-bottom: 35px;
}
.kpi-card {
    background: #fff;
    border-radius: 14px;
    padding: 22px;
    box-shadow: 0 6px 18px rgba(0,0,0,.08);
    border-top: 4px solid var(--primary-color);
}
.kpi-card span { display: block; color: #59636e; font-size: 14px; min-height: 38px; }
.kpi-card strong { display: block; color: var(--primary-color); font-size: 23px; margin: 10px 0 6px; line-height: 1.2; }
.kpi-card small { color: #6b7280; }
.kpi-card.negative { border-top-color: #a83232; }
.kpi-card.negative strong { color: #a83232; }
.institutional-profile {
    background: #fff;
    border-radius: 14px;
    padding: 28px;
    box-shadow: 0 6px 18px rgba(0,0,0,.07);
    line-height: 1.7;
}
.section-title-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: flex-start;
    margin-bottom: 14px;
}
.section-title-row h2 { color: var(--primary-color); margin: 0; }
.section-intro { color: #59636e; line-height: 1.7; margin-bottom: 22px; }
.small-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--primary-color);
    font-weight: 700;
    text-decoration: none;
    background: #fff;
    border: 1px solid var(--border-color);
    padding: 10px 14px;
    border-radius: 8px;
    white-space: nowrap;
}
.table-scroll { overflow-x: auto; border-radius: 10px; box-shadow: 0 5px 16px rgba(0,0,0,.08); background: #fff; margin: 18px 0; }
.transp-table { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 850px; }
.transp-table th { background: var(--primary-color); color: #fff; padding: 13px 12px; text-align: left; position: sticky; top: 0; }
.transp-table td { padding: 11px 12px; border-bottom: 1px solid #edf0f2; vertical-align: top; }
.transp-table tbody tr:nth-child(even) { background: #fafafa; }
.transp-table tbody tr:hover { background: #eef7fb; }
.transp-table .total-row td { font-weight: 700; background: #f2f7fb; }
.compact-table { min-width: 420px; }
.summary-columns { display: grid; grid-template-columns: 1fr 1.4fr; gap: 22px; align-items: start; }
.filter-box { margin: 25px 0 5px; background: #fff; border: 1px solid var(--border-color); border-radius: 12px; padding: 18px; }
.filter-box label { display: block; color: var(--primary-color); font-weight: 700; margin-bottom: 8px; }
.filter-box input { width: 100%; border: 1px solid var(--border-color); border-radius: 8px; padding: 12px 14px; font-size: 15px; }
.contract-highlight { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; margin-bottom: 24px; }
.contract-highlight div { background: #fff; border-radius: 12px; padding: 18px; box-shadow: 0 4px 14px rgba(0,0,0,.06); }
.contract-highlight span { display: block; color: #59636e; font-size: 13px; margin-bottom: 6px; }
.contract-highlight strong { color: var(--primary-color); font-size: 20px; }
.contract-bars { background: #fff; border-radius: 14px; padding: 22px; box-shadow: 0 6px 18px rgba(0,0,0,.07); margin-bottom: 24px; }
.bar-row { display: grid; grid-template-columns: 190px 1fr 70px; gap: 14px; align-items: center; padding: 8px 0; border-bottom: 1px solid #f0f1f2; }
.bar-row:last-child { border-bottom: 0; }
.bar-label strong { display: block; color: var(--primary-color); }
.bar-label span { font-size: 12px; color: #59636e; }
.bar-track { height: 12px; background: #e9eef2; border-radius: 999px; overflow: hidden; }
.bar-fill { height: 100%; background: var(--secondary-color); border-radius: 999px; }
.bar-var { font-weight: 700; color: #59636e; text-align: right; }
.subsection-title { color: var(--primary-color); margin-top: 28px; }
.download-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.download-card { background: #fff; border-radius: 12px; padding: 22px; text-decoration: none; color: var(--primary-color); box-shadow: 0 6px 18px rgba(0,0,0,.08); border: 1px solid var(--border-color); transition: transform .2s ease; }
.download-card:hover { transform: translateY(-3px); }
.download-card i { font-size: 28px; margin-bottom: 12px; color: var(--secondary-color); }
.download-card strong { display: block; margin-bottom: 4px; }
.download-card span { color: #59636e; font-size: 13px; }
.request-panel { background: #fff; border-radius: 16px; padding: 32px; box-shadow: 0 8px 22px rgba(0,0,0,.08); display: grid; grid-template-columns: 1.4fr .8fr; gap: 28px; align-items: center; }
.request-list { list-style: none; padding: 0; margin: 18px 0 0; }
.request-list li { margin: 10px 0; color: #444; }
.request-list i { color: var(--primary-color); width: 24px; }
.request-list a { color: var(--primary-color); font-weight: 700; }
.request-actions { justify-content: flex-start; flex-direction: column; }
.request-actions .btn { text-align: center; }
@media (max-width: 900px) {
    .summary-columns, .request-panel { grid-template-columns: 1fr; }
    .bar-row { grid-template-columns: 1fr; gap: 8px; }
    .bar-var { text-align: left; }
    .section-title-row { flex-direction: column; }
    .transparency-hero h1 { font-size: 34px; }
}


/* ======= Transparência HM Regional v4: explicativa + gráficos ======= */
.transparency-v4-body { background: #f7fafc; }
.v4-breadcrumb { background-color: var(--accent-color); padding: 15px 0; border-bottom: 1px solid var(--border-color); }
.v4-breadcrumb .breadcrumb { display:flex; align-items:center; gap:10px; font-size:14px; }
.v4-breadcrumb a { color: var(--primary-color); text-decoration:none; }
.transparency-hero-v4 { background: radial-gradient(circle at top left, rgba(0,166,214,.25), transparent 28%), linear-gradient(135deg, #004765, #006b96 60%, #0b8cb6); color:#fff; padding:72px 0; }
.hero-grid-v4 { display:grid; grid-template-columns: 1.4fr .85fr; gap:32px; align-items:center; }
.hero-copy-v4 h1 { font-size:46px; line-height:1.08; margin:12px 0 18px; color:#fff; }
.hero-copy-v4 p { font-size:18px; line-height:1.75; max-width:780px; opacity:.95; }
.eyebrow-light { display:inline-block; color:#fff; opacity:.9; text-transform:uppercase; letter-spacing:.08em; font-weight:800; font-size:13px; }
.hero-panel-v4 { background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.25); border-radius:20px; padding:26px; backdrop-filter: blur(6px); box-shadow:0 20px 44px rgba(0,0,0,.18); }
.hero-panel-v4 h2 { color:#fff; margin:0 0 16px; }
.hero-panel-v4 ul { list-style:none; padding:0; margin:0; display:grid; gap:14px; }
.hero-panel-v4 li { display:grid; gap:3px; border-bottom:1px solid rgba(255,255,255,.2); padding-bottom:12px; }
.hero-panel-v4 li:last-child { border-bottom:0; padding-bottom:0; }
.hero-panel-v4 strong { font-size:24px; color:#fff; }
.hero-panel-v4 span { opacity:.9; font-size:13px; }
.portal-menu-section { margin-top:-28px; position:relative; z-index:5; }
.portal-menu-card { background:#fff; border-radius:18px; box-shadow:0 10px 28px rgba(0,0,0,.12); padding:18px; display:grid; grid-template-columns: 260px 1fr; gap:16px; align-items:center; }
.portal-menu-card p { margin:4px 0 0; color:#687280; font-size:13px; }
.v4-nav { padding:0; box-shadow:none; border:0; background:transparent; }
.v4-section { padding:64px 0; }
.v4-title-row h2 { font-size:30px; }
.plain-summary { display:grid; grid-template-columns:58px 1fr; gap:18px; background:#fff; border:1px solid #e4edf3; border-radius:18px; padding:22px; box-shadow:0 8px 22px rgba(0,0,0,.06); margin-bottom:28px; }
.plain-summary h3 { margin:0 0 8px; color:var(--primary-color); }
.plain-summary p { margin:0; line-height:1.75; color:#3d4954; }
.plain-summary-icon { width:58px; height:58px; border-radius:16px; background:var(--accent-color); display:flex; align-items:center; justify-content:center; color:var(--primary-color); font-size:24px; }
.warning-box { border-left:6px solid #d67b00; }
.v4-kpis .kpi-card { min-height:162px; }
.v4-kpis .kpi-card.warning { border-top-color:#d67b00; }
.v4-kpis .kpi-card.warning strong { color:#b85c00; }
.v4-profile { margin-top:20px; }
.explain-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(250px,1fr)); gap:18px; }
.explain-card { background:#fff; border-radius:18px; padding:24px; border:1px solid #e5edf3; box-shadow:0 8px 22px rgba(0,0,0,.06); }
.explain-card i { width:46px; height:46px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:var(--accent-color); color:var(--primary-color); font-size:20px; margin-bottom:16px; }
.explain-card h3 { color:var(--primary-color); margin:0 0 10px; }
.explain-card p { color:#4f5c68; line-height:1.68; margin:0; }
.chart-grid { display:grid; gap:22px; }
.chart-grid.two { grid-template-columns:1fr 1fr; }
.chart-grid.margin-top { margin-top:22px; }
.chart-card-v4 { background:#fff; border-radius:20px; padding:24px; border:1px solid #e4edf3; box-shadow:0 8px 24px rgba(0,0,0,.07); }
.chart-card-v4.full { margin-top:22px; }
.chart-card-v4 h3 { color:var(--primary-color); margin:0 0 18px; font-size:21px; }
.chart-caption { color:#65717c; margin:0 0 12px; line-height:1.55; }
.chart-legend { display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:#53616d; font-size:13px; margin-bottom:14px; }
.legend-dot { width:14px; height:14px; border-radius:4px; display:inline-block; margin-left:6px; }
.legend-dot:first-child { margin-left:0; }
.legend-dot.serie-receita, .group-bar.serie-receita { background:#0077a8; }
.legend-dot.serie-custo, .group-bar.serie-custo { background:#d77a00; }
.grouped-chart { display:grid; gap:11px; }
.group-row { display:grid; grid-template-columns:54px 1fr; gap:12px; align-items:center; }
.group-year { font-weight:800; color:#2f3a44; }
.group-bars { display:grid; gap:5px; }
.group-bar { height:26px; width:var(--w); min-width:58px; border-radius:999px; display:flex; align-items:center; justify-content:flex-end; color:#fff; font-weight:800; font-size:12px; padding-right:9px; box-shadow:inset 0 -10px 18px rgba(0,0,0,.08); }
.hbar-chart { display:grid; gap:11px; }
.hbar-row { display:grid; grid-template-columns: 185px 1fr 96px; gap:12px; align-items:center; }
.hbar-name { color:#2f3a44; font-weight:700; line-height:1.2; }
.hbar-name small { display:block; color:#7a8590; font-weight:500; margin-top:3px; font-size:11px; }
.hbar-track { height:18px; background:#eaf0f4; border-radius:999px; overflow:hidden; }
.hbar-fill { height:100%; width:var(--w); border-radius:999px; background:linear-gradient(90deg, var(--secondary-color), var(--primary-color)); }
.hbar-row.negative .hbar-fill { background:linear-gradient(90deg, #df8a8a, #a83232); }
.hbar-value { font-weight:800; color:var(--primary-color); text-align:right; font-size:13px; }
.result-chart { display:grid; gap:12px; }
.result-row { display:grid; grid-template-columns:50px 1fr 120px; gap:12px; align-items:center; }
.result-year { font-weight:800; }
.result-axis { height:22px; background:#eaf0f4; border-radius:999px; overflow:hidden; }
.result-fill { height:100%; width:var(--w); border-radius:999px; background:#0077a8; }
.result-row.negative .result-fill { background:#a83232; }
.result-value { display:grid; gap:2px; text-align:right; }
.result-value strong { color:#2f3a44; font-size:13px; }
.result-value small { color:#7a8590; font-size:11px; }
.chart-explain { background:#f4f9fc; border-left:4px solid var(--secondary-color); border-radius:10px; padding:12px 14px; margin-top:18px; color:#3f4c57; line-height:1.6; }
.data-details { background:#fff; border:1px solid #e0e8ef; border-radius:14px; margin-top:22px; overflow:hidden; }
.data-details > summary { cursor:pointer; list-style:none; padding:16px 20px; font-weight:800; color:var(--primary-color); background:#f7fbfd; border-bottom:1px solid #e0e8ef; }
.data-details > summary::-webkit-details-marker { display:none; }
.data-details > summary:before { content:'+'; display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; margin-right:10px; border-radius:50%; background:var(--primary-color); color:#fff; }
.data-details[open] > summary:before { content:'–'; }
.compact-dre { min-width:1100px; }
.v4-summary-columns { margin:22px 0; }
.v4-filter { margin-top:22px; }
.v4-downloads .download-card { min-height:144px; }
.v4-request-panel { align-items:flex-start; }
.request-steps { background:#f7fbfd; border:1px solid #e0e8ef; border-radius:12px; padding:16px 16px 16px 36px; color:#44515d; line-height:1.7; }
.transp-table caption { text-align:left; font-weight:800; padding:12px; color:var(--primary-color); }
@media (max-width: 980px) {
    .hero-grid-v4, .portal-menu-card, .chart-grid.two { grid-template-columns:1fr; }
    .portal-menu-section { margin-top:0; }
    .hero-copy-v4 h1 { font-size:34px; }
    .hbar-row, .result-row { grid-template-columns:1fr; gap:6px; }
    .hbar-value, .result-value { text-align:left; }
    .group-row { grid-template-columns:1fr; }
}


/* Vídeo institucional */
.institutional-video {
    width: 100%;
    max-height: 560px;
    object-fit: cover;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.12);
}
