/* ========================================= */
/* CSS PARA A PÁGINA "UNIDADE IRMÃS VIEIRA"   */
/* ========================================= */

/* HERO PADRONIZADO (ESTILO REESCRITO MANTENDO BORDAS) */
#unidade-irmas-vieira-main .hero--full-image {
    min-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    overflow: hidden;
    color: var(--color-white);
    z-index: 10;
    /* BORDAS ARREDONDADAS MANTIDAS */
    border-bottom-left-radius: 70px;
    border-bottom-right-radius: 70px;
    /* Reset de propriedades antigas */
    height: auto;
    padding-top: 0;
}
#unidade-irmas-vieira-main .hero--full-image .hero__image-bg {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background-image: url('../images/hero-vieira2.webp');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    z-index: 1;
}
#unidade-irmas-vieira-main .hero--full-image .hero__overlay {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 10%, rgba(0, 0, 0, 0.2) 100%);
    z-index: 2;
}
#unidade-irmas-vieira-main .hero--full-image .hero__content {
    position: relative;
    z-index: 3;
    text-align: left;
    margin-left: 15%;
    margin-right: auto;
    max-width: 700px;
    padding-top: 0;
}
#unidade-irmas-vieira-main .hero--full-image .hero__title {
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 800;
    text-shadow: none;
    margin-bottom: 15px;
}
#unidade-irmas-vieira-main .hero--full-image .hero__content > .hero__subtitle:first-of-type {
    font-size: clamp(1.1rem, 2.5vw, 1.5rem);
    font-weight: 600;
    line-height: 1.2;
    text-shadow: none;
    max-width: none;
    margin: 0;
}
#unidade-irmas-vieira-main .hero--full-image .hero__content > .hero__subtitle:last-of-type {
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 1.7;
    text-shadow: none;
    max-width: none;
    margin: 0;
}


/* Efeito de sobreposição para a seção de contatos */
#unidade-irmas-vieira-main .pedagogical-contacts {
    margin-top: -70px;
    padding-top: 120px;
    position: relative;
    z-index: 5;
}


/* SEÇÃO DE CONTATOS PEDAGÓGICOS */
.pedagogical-contacts {
    padding: 100px 0;
    background-color: var(--color-white);
}
.pedagogical-contacts .section-header::after {
    background-color: #866093; /* Cor Roxo IASC */
}
.pedagogical-contacts__tabs { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; margin-bottom: 40px; }
.pedagogical-contacts__tab { background-color: #e2e8f0; color: #2d3748; border: none; border-radius: 20px; padding: 18px 35px; font-size: 1.2rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; display: flex; flex-direction: column; align-items: flex-start; min-width: 250px; }
.pedagogical-contacts__tab .tab-arrow { font-size: 0.9rem; font-weight: 500; color: var(--color-primary); margin-top: 8px; opacity: 1; transition: all 0.3s ease; }
.pedagogical-contacts__tab .tab-arrow i { transition: transform 0.3s ease; }
.pedagogical-contacts__tab:hover { transform: translateY(-5px); background-color: #cbd5e0; }
.pedagogical-contacts__tab:hover .tab-arrow i { transform: translateX(4px); }
.pedagogical-contacts__tab.active { background-color: #866093; color: var(--color-white); transform: translateY(0); }
.pedagogical-contacts__tab.active .tab-arrow { color: var(--color-white); opacity: 1; }
.pedagogical-contacts__tab.active .tab-arrow i { transform: rotate(90deg); }
.pedagogical-contacts__panel { background-color: #f7fafc; border: 1px solid #e2e8f0; border-radius: 20px; padding: 40px; box-shadow: var(--shadow-sm); max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.5s ease-out, opacity 0.5s ease-out, padding 0.5s ease-out; padding-top: 0; padding-bottom: 0; }
.pedagogical-contacts__panel.active { max-height: 500px; opacity: 1; padding: 40px; }
.pedagogical-contacts__panel h3 { font-size: 1.5rem; font-weight: 700; color: #866093; margin-bottom: 30px; border-bottom: 2px solid var(--color-primary); padding-bottom: 10px; display: inline-block; }
.contact-entry { margin-bottom: 25px; }
.contact-entry:last-child { margin-bottom: 0; }
.contact-entry h4 { font-size: 0.9rem; font-weight: 700; color: var(--color-primary); margin-bottom: 10px; text-transform: uppercase; }
.contact-entry .contact-name { font-size: 1.1rem; font-weight: 600; color: var(--color-text-dark); margin-bottom: 2px; }
.contact-entry .contact-title { font-size: 1rem; color: var(--color-text); margin-bottom: 8px; }
.contact-entry .contact-email { font-size: 1rem; color: #866093; text-decoration: none; font-weight: 500; }
.contact-entry .contact-email:hover { text-decoration: underline; }

/* CARROSSEL DE INFRAESTRUTURA (ESTRUTURA) */
.infra-carousel-section {
    padding: 100px 0;
    background-color: var(--color-bg-alt);
}
.infra-slider-wrapper { position: relative; padding: 0 50px; }
.infra-slider { padding-bottom: 70px; }
.infra-card-item { position: relative; overflow: hidden; border-radius: var(--radius); height: 400px; }
.infra-card-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.infra-card-item:hover img { transform: scale(1.05); }
.infra-card-overlay { position: absolute; bottom: 0; left: 0; width: 100%; background: rgba(0, 0, 0, 0.6); color: var(--color-white); padding: 20px; transform: translateY(100%); transition: transform 0.4s ease; text-align: center; }
.infra-card-item:hover .infra-card-overlay { transform: translateY(0); }
.infra-slider-wrapper .swiper-button-next, .infra-slider-wrapper .swiper-button-prev { color: var(--color-primary); }
.infra-slider-wrapper .swiper-pagination-bullet-active { background: var(--color-primary); }
.section-header .btn { margin-top: 30px; }

/* CARROSSEL DE PROGRAMAS (COM FUNDO NEUTRO) */
.programs-carousel-section {
    padding: 100px 0;
    background-color: var(--color-white);
}
.programs-carousel-section .section-header h2 {
    color: var(--color-text-dark);
}
.programs-carousel-section .section-header p {
    color: var(--color-text);
}
.programs-slider-wrapper { position: relative; padding: 0 50px; }

/* ADICIONADO PARA CARDS CLICÁVEIS */
.program-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
    height: 100%;
}

.program-card { position: relative; height: 400px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); cursor: pointer; background-color: #333; }
.program-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease, filter 0.4s ease; }
.program-card:hover .program-card__image { transform: scale(1.1); filter: brightness(0.6); }
.program-card__overlay { position: absolute; bottom: 0; left: 0; width: 100%; padding: 25px; color: white; background: linear-gradient(to top, rgba(0,0,0,0.9) 20%, transparent 100%); z-index: 2; text-align: left; }
.program-card__title { font-size: 1.6rem; font-weight: 700; margin: 0; transition: transform 0.4s ease; }
.program-card__description { font-size: 0.95rem; line-height: 1.5; margin-top: 15px; max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.4s ease, opacity 0.4s ease, margin-top 0.4s ease; }
.program-card:hover .program-card__title { transform: translateY(-70px); }
.program-card:hover .program-card__description { max-height: 100px; opacity: 1; margin-top: 10px; }
.programs-slider { padding-bottom: 70px; }
.programs-slider-wrapper .programs-nav-button { color: #F16137; }
.programs-slider-wrapper .programs-pagination .swiper-pagination-bullet-active { background-color: #F16137; }

/* SEÇÃO DE CONTATO E LOCALIZAÇÃO */
.contact-location { position: relative; display: flex; align-items: center; min-height: 600px; padding: 60px 0; overflow: hidden; }
.contact-location__bg-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.contact-location__overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.1); z-index: 2; }
.contact-location .container { position: relative; z-index: 3; width: 100%; }
.contact-card { background-color: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px); padding: 40px; border-radius: var(--radius); box-shadow: var(--shadow-lg); width: 100%; max-width: 500px; margin-left: auto; margin-right: 0; }
.contact-card__super-title { font-size: 1.2rem; font-weight: 500; color: var(--color-text); margin-bottom: 5px; }
.contact-card__title { font-size: 2.5rem; font-weight: 700; line-height: 1.2; margin-bottom: 30px; }
.contact-card__group { margin-bottom: 25px; }
.contact-card__group:last-child { margin-bottom: 0; }
.contact-card h4 { font-size: 1.1rem; font-weight: 600; margin-bottom: 15px; border-bottom: 2px solid var(--color-primary); padding-bottom: 8px; display: inline-block; }
.contact-card p { font-size: 1.05rem; line-height: 1.6; margin-bottom: 10px; display: flex; align-items: flex-start; }
.contact-card p i { font-size: 1.1rem; margin-right: 15px; color: var(--color-primary); padding-top: 5px; }


/* --- RESPONSIVIDADE --- */
@media (max-width: 992px) {
    #unidade-irmas-vieira-main .hero--full-image .hero__content {
        margin-left: 10%;
    }
    .infra-slider-wrapper, .programs-slider-wrapper { padding: 0 15px; }
    .infra-slider-wrapper .swiper-button-next, .infra-slider-wrapper .swiper-button-prev, .programs-slider-wrapper .swiper-button-next, .programs-slider-wrapper .swiper-button-prev { display: none; }
}

@media (max-width: 768px) {
    #unidade-irmas-vieira-main .hero--full-image {
        min-height: 80vh;
    }
    #unidade-irmas-vieira-main .hero--full-image .hero__content {
        max-width: 90%;
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }
    #unidade-irmas-vieira-main .pedagogical-contacts {
        margin-top: -50px;
        padding-top: 100px;
    }
    .infra-carousel-section, .programs-carousel-section, .pedagogical-contacts { padding: 80px 0; }
    .program-card:hover .program-card__title { transform: translateY(0); }
    .program-card__description { max-height: 100px; opacity: 1; }
    .contact-card { margin-left: auto; margin-right: auto; padding: 30px; }
    .contact-card__title { font-size: 2rem; }
    .pedagogical-contacts__tabs { gap: 10px; }
    .pedagogical-contacts__tab { min-width: 100%; align-items: center; }
}